Eradicated Redux for MobX
This commit is contained in:
39
src/scenes/DocumentScene/DocumentSceneStore.js
Normal file
39
src/scenes/DocumentScene/DocumentSceneStore.js
Normal file
@@ -0,0 +1,39 @@
|
||||
import { observable, action } from 'mobx';
|
||||
import { client } from 'utils/ApiClient';
|
||||
import { browserHistory } from 'react-router';
|
||||
|
||||
const store = new class DocumentSceneStore {
|
||||
@observable document;
|
||||
|
||||
@observable isFetching = true;
|
||||
@observable isDeleting;
|
||||
|
||||
/* Actions */
|
||||
|
||||
@action fetchDocument = async (id) => {
|
||||
this.isFetching = true;
|
||||
|
||||
try {
|
||||
const res = await client.post('/documents.info', { id: id });
|
||||
const { data } = res;
|
||||
this.document = data;
|
||||
} catch (e) {
|
||||
console.error("Something went wrong");
|
||||
}
|
||||
this.isFetching = false;
|
||||
}
|
||||
|
||||
@action deleteDocument = async () => {
|
||||
this.isFetching = true;
|
||||
|
||||
try {
|
||||
const res = await client.post('/documents.delete', { id: this.document.id });
|
||||
browserHistory.push(`/atlas/${this.document.atlas.id}`);
|
||||
} catch (e) {
|
||||
console.error("Something went wrong");
|
||||
}
|
||||
this.isFetching = false;
|
||||
}
|
||||
}();
|
||||
|
||||
export default store;
|
||||
Reference in New Issue
Block a user