| import { create } from "zustand"; | |
| import useGraph from "src/store/useGraph"; | |
| interface JsonActions { | |
| setJson: (json: string) => void; | |
| getJson: () => string; | |
| clear: () => void; | |
| } | |
| const initialStates = { | |
| json: "", | |
| loading: true, | |
| }; | |
| export type JsonStates = typeof initialStates; | |
| const useJson = create<JsonStates & JsonActions>()((set, get) => ({ | |
| ...initialStates, | |
| getJson: () => get().json, | |
| setJson: json => { | |
| set({ json, loading: false }); | |
| useGraph.getState().setGraph(json); | |
| }, | |
| clear: () => { | |
| set({ json: "", loading: false }); | |
| useGraph.getState().clearGraph(); | |
| }, | |
| })); | |
| export default useJson; | |