diff --git a/src/store/useProblemEditorStore.ts b/src/store/useProblemEditorStore.ts new file mode 100644 index 0000000..4c7a0cb --- /dev/null +++ b/src/store/useProblemEditorStore.ts @@ -0,0 +1,26 @@ +import { create } from "zustand"; +import { EditorLanguage } from "@prisma/client"; +import { createJSONStorage, persist } from "zustand/middleware"; +import { DEFAULT_EDITOR_LANGUAGE } from "@/config/editor-language"; + +/** + * State management for problem editor settings. + */ +interface ProblemEditorState { + globalEditorLanguage: EditorLanguage; + setGlobalEditorLanguage: (language: EditorLanguage) => void; +} + +export const useProblemEditorStore = create()( + persist( + (set) => ({ + globalEditorLanguage: DEFAULT_EDITOR_LANGUAGE, + setGlobalEditorLanguage: (language) => set({ globalEditorLanguage: language }), + }), + { + name: "problem-editor", + storage: createJSONStorage(() => localStorage), + partialize: (state) => ({ globalEditorLanguage: state.globalEditorLanguage }), + } + ) +);