@ovine/craft
Version:
Ovine json editor.
35 lines (34 loc) • 791 B
JavaScript
import { types } from 'mobx-state-tree';
import { createContext, useContext } from 'react';
// 根节点
const Root = types
.model('Root', {
// 编辑器模式
mode: types.enumeration('mode', ['edit', 'stage']),
})
.views((self) => {
return {
get isEditMode() {
return self.mode === 'edit';
},
get isStageMode() {
return self.mode === 'stage';
},
};
})
.actions((self) => {
const setMode = (mode) => {
self.mode = mode;
};
return {
setMode,
};
});
const RootContext = createContext(null);
export const RootProvider = RootContext.Provider;
export const useRootStore = () => {
return useContext(RootContext);
};
export const rootStore = Root.create({
mode: 'edit',
});