kia-ml
Version:
Kia
28 lines (26 loc) • 1.03 kB
JavaScript
import { types } from 'mobx-state-tree';
import { CharacterModel } from '../character/character';
import { CharacterApi } from '../../services/api/character-api';
import { withEnvironment } from '../extensions/with-environment';
/**
* Example store containing Rick and Morty characters
*/
export const CharacterStoreModel = types.model('CharacterStore').props({
characters: types.optional(types.array(CharacterModel), [])
}).extend(withEnvironment).actions(self => ({
saveCharacters: characterSnapshots => {
self.characters.replace(characterSnapshots);
}
})).actions(self => ({
getCharacters: async () => {
const characterApi = new CharacterApi(self.environment.api);
const result = await characterApi.getCharacters();
if (result.kind === 'ok') {
self.saveCharacters(result.characters);
} else {
__DEV__ && console.log(result.kind);
}
}
}));
export const createCharacterStoreDefaultModel = () => types.optional(CharacterStoreModel, {});
//# sourceMappingURL=character-store.js.map