Ankilan/src/reducers/api-reducer.js

64 lines
1.4 KiB
JavaScript
Raw Normal View History

import {
SET_ALL_FIELDS,
SET_AVAILABLE_API,
SET_LOADING_STATE,
2020-03-20 15:19:09 +00:00
SET_PARSED_DICTIONARY,
SET_YANDEX_DICTIONARY_RESPONSE,
} from '../constants/api-constants';
import {SET_FIELDS} from '../constants/anki-constants';
import {addNote} from '../actions/createAnkiLanModel';
2020-03-13 20:45:31 +00:00
const initialState = {
word: '',
translatedObject: {},
wordSoundLink: '',
availableApi: {},
availableApiName: '',
yandexDictionaryInfo: [],
2020-03-18 19:58:12 +00:00
parsedDictionary: {},
availableFields: [],
allFields: [],
apiIsLoaded: false,
2020-03-13 20:45:31 +00:00
};
2020-03-05 22:16:34 +00:00
const apiReducer = (state = initialState, action) => {
switch (action.type) {
case SET_YANDEX_DICTIONARY_RESPONSE:
return {
...state,
yandexDictionaryInfo: action.payload,
};
case SET_AVAILABLE_API:
return {
...state,
availableApi: action.payload,
availableApiName: action.payload.source,
};
2020-03-20 15:19:09 +00:00
case SET_PARSED_DICTIONARY:
return {
...state,
parsedDictionary: action.payload,
apiIsLoaded: true,
};
case SET_LOADING_STATE:
return {
...state,
apiIsLoaded: action.payload,
2020-03-20 15:19:09 +00:00
};
case SET_FIELDS:
addNote(action.payload);
return {
...state,
availableFields: action.payload,
};
case SET_ALL_FIELDS:
return {
...state,
allFields: action.payload,
};
2020-03-05 22:16:34 +00:00
default:
return state;
}
};
export default apiReducer;