judge4c-old-2/src/store/useCodeEditorStore.ts

21 lines
635 B
TypeScript
Raw Normal View History

import { create } from "zustand";
import { CodeEditorState } from "@/types";
import { DEFAULT_THEME } from "@/constants/themes";
import { DEFAULT_LANGUAGE } from "@/constants/languages";
import { persist, createJSONStorage } from "zustand/middleware";
export const useCodeEditorStore = create<CodeEditorState>()(
persist(
(set, get) => ({
language: DEFAULT_LANGUAGE,
theme: DEFAULT_THEME,
setLanguage: (language: string) => set({ language }),
setTheme: (theme: string) => set({ theme }),
}),
{
name: "code-editor-storage",
storage: createJSONStorage(() => localStorage),
}
)
);