diff --git a/src/actions/anki-get-actions.js b/src/actions/anki-get-actions.js index 86d9343..18500ce 100644 --- a/src/actions/anki-get-actions.js +++ b/src/actions/anki-get-actions.js @@ -105,8 +105,10 @@ export const checkAnkiLanModelForExisting = ( modelList, ) => async dispatch => { try { + let id = 0; for (let model of modelList) { if (model.name === name) { + id = model.id; await dispatch(setExistingOfAnkiLanModel(true)); return true; } @@ -118,3 +120,16 @@ export const checkAnkiLanModelForExisting = ( await dispatch(setExistingOfAnkiLanModel(false)); } }; + +export const getModelId = (models, name) => { + console.log(models, name); + let id = ''; + models.forEach(model => { + if (model.name === name) { + console.log('id', model.id); + id = model.id; + return id; + } + }); + return id; +}; diff --git a/src/actions/api/dictionary.js b/src/actions/api/dictionary.js index f4b2180..3ee31e3 100644 --- a/src/actions/api/dictionary.js +++ b/src/actions/api/dictionary.js @@ -14,6 +14,9 @@ import { import {createDictionary} from '../dictionary/create-dictionary'; import {setFields} from '../anki-set-actions'; import {sendWord, submit} from '../form-actions'; +import store from '../../store'; +import {getModelId} from '../anki-get-actions'; +import {AnkiDroid} from 'react-native-ankidroid/dist/ankidroid'; const getAvailableApi = (apiArray = []) => { for (const api of apiArray) { @@ -52,6 +55,7 @@ export const wordInfo = word => async dispatch => { dispatch(setDictioanry(wordDictionary)); /* TODO: move sendWord to submit function */ // sendWord(setFields(wordDictionary)); + drawFields(); } catch (e) { console.log(e); } diff --git a/src/actions/createAnkiLanModel.js b/src/actions/createAnkiLanModel.js index ed5e324..80d3d1f 100644 --- a/src/actions/createAnkiLanModel.js +++ b/src/actions/createAnkiLanModel.js @@ -1,6 +1,6 @@ import {AnkiDroid} from 'react-native-ankidroid/dist/ankidroid'; import {setAnkiNoteCreator, setCreatorTemplate} from './anki-set-actions'; -import sendDataToLocaleStorage from './filesystem'; +import sendDataToLocaleStorage, {getAnkiData} from './filesystem'; import setSettings, { modelFields, valueFields, @@ -8,6 +8,7 @@ import setSettings, { import { checkAnkiLanModelForExisting, getFieldList, + getModelId, getModelList, } from './anki-get-actions'; @@ -16,15 +17,15 @@ import store from '../store'; export const createAnkiLanModel = model => async dispatch => { try { const settings = setSettings(model); - const selectedDeck = new AnkiDroid(settings); await dispatch(setAnkiNoteCreator(selectedDeck)); await dispatch(setCreatorTemplate(modelFields)); // const sd = JSON.parse(JSON.stringify(selectedDeck)); // console.log(sd === selectedDeck); // **************** - alert('oh shit'); - addNote(selectedDeck, valueFields, modelFields); + + firstNote(selectedDeck, valueFields, modelFields); + // **************** // sendDataToLocaleStorage( // setAnkiNoteCreator(sd), //send creator to locale storage @@ -32,19 +33,31 @@ export const createAnkiLanModel = model => async dispatch => { // ); checkAnkiLanModelForExisting(model.name, model.list); await dispatch(getModelList()); - await dispatch(getFieldList(model.name)); + const [err, modelList] = await AnkiDroid.getModelList(); + const modelId = await getModelId(modelList, model.name); + await console.log(modelId); + const [, fieldList] = await AnkiDroid.getFieldList(model.name); + + sendDataToLocaleStorage({ + fieldList, + modelName: model.name, + modelId, + }); } catch (err) { - console.log(err); + console.log('irror is ghere', err); } }; +const firstNote = (creator, fields, template) => + creator.addNote(fields, template); //creator is an object what have to store in locale storage. -export const addNote = words => { +export const addNote = async words => { const template = store.getState().anki.noteTemplate; const deckId = store.getState().anki.selectedDeck.id; + const modelId = await getAnkiData().modelId; const settings = { deckId, - modelId: '1585139654585', + modelId, }; const creator = new AnkiDroid(settings); diff --git a/src/actions/filesystem.js b/src/actions/filesystem.js index aad5d6d..517348a 100644 --- a/src/actions/filesystem.js +++ b/src/actions/filesystem.js @@ -1,48 +1,33 @@ import AsyncStorage from '@react-native-community/async-storage'; import { + ANKILAN_DATA, ANKILAN_NOTE_CREATOR, ANKILAN_NOTE_TEMPLATE, } from '../constants/anki-constants'; import JSONfn from 'jsonfn'; -const sendDataToLocaleStorage = async (creator, template) => { +const sendDataToLocaleStorage = async data => { try { await AsyncStorage.clear(); - - await AsyncStorage.setItem(ANKILAN_NOTE_CREATOR, JSONfn.stringify(creator)); - await AsyncStorage.setItem( - ANKILAN_NOTE_TEMPLATE, - JSONfn.stringify(template), - ); + await AsyncStorage.setItem(ANKILAN_DATA, JSONfn.stringify(data)); + console.log(data); } catch (e) { // saving error alert('Error while syncing with filesystem'); console.log(e); } }; + +export const getAnkiData = async () => { + try { + const value = await AsyncStorage.getItem(ANKILAN_DATA); + if (value !== null) { + // value previously stored + return JSONfn.parse(value); + } + } catch (e) { + // error reading value + } +}; + export default sendDataToLocaleStorage; - -export const getTemplate = async () => { - try { - const value = await AsyncStorage.getItem(ANKILAN_NOTE_TEMPLATE); - console.log(value); - if (value !== null) { - // value previously stored - return JSONfn.parse(value); - } - } catch (e) { - // error reading value - } -}; - -export const getCreator = async () => { - try { - const value = await AsyncStorage.getItem(ANKILAN_NOTE_CREATOR); - if (value !== null) { - // value previously stored - return JSONfn.parse(value); - } - } catch (e) { - // error reading value - } -}; diff --git a/src/actions/user-interface/draw-fields.js b/src/actions/user-interface/draw-fields.js new file mode 100644 index 0000000..fc076e6 --- /dev/null +++ b/src/actions/user-interface/draw-fields.js @@ -0,0 +1,2 @@ +const drawFields = () => {}; +export default drawFields; diff --git a/src/components/anki-form.jsx b/src/components/anki-form.jsx index de9c3a3..a36e977 100644 --- a/src/components/anki-form.jsx +++ b/src/components/anki-form.jsx @@ -9,6 +9,7 @@ import {wordInfo} from "../actions/api/dictionary"; const AnkiForm = props => { const [target, setTarget] = useState('') + const [fields, setFields] = useState({}) useEffect(() => { // props.wordInfo('Urge'); // props.wordInfo('Maze'); diff --git a/src/components/view/submit-button.jsx b/src/components/view/submit-button.jsx index 8dc8eea..c5c886c 100644 --- a/src/components/view/submit-button.jsx +++ b/src/components/view/submit-button.jsx @@ -5,7 +5,7 @@ import {Button, Text} from 'native-base'; const SubmitButton = props => { return ( ); }; diff --git a/src/constants/anki-constants.js b/src/constants/anki-constants.js index 75b2927..54bfcb1 100644 --- a/src/constants/anki-constants.js +++ b/src/constants/anki-constants.js @@ -26,3 +26,4 @@ export const SET_EXISTING_OF_ANKI_LAN_MODEL = 'SET_EXISTING_OF_ANKI_LAN_MODEL'; //rn-async-storage kesy export const ANKILAN_NOTE_CREATOR = '@ANKILAN_NOTE_CREATOR'; export const ANKILAN_NOTE_TEMPLATE = '@ANKILAN_NOTE_TEMPLATE'; +export const ANKILAN_DATA = 'ANKILAN_DATA'; diff --git a/src/reducers/anki-reducer.js b/src/reducers/anki-reducer.js index 5c4d4ee..2975ebf 100644 --- a/src/reducers/anki-reducer.js +++ b/src/reducers/anki-reducer.js @@ -20,7 +20,7 @@ const initialState = { mainFieldIsAvailable: false, fieldList: [], ankiLanModelIsAlreadyExists: false, - ankiLanModelName: '1AnkiLan1111', + ankiLanModelName: 'develop_final', noteCreator: {}, noteTemplate: [], };