diff --git a/package.json b/package.json index 4b30aa0..3fd7b97 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,8 @@ "react": "19.0.0-rc-66855b96-20241106", "react-dom": "19.0.0-rc-66855b96-20241106", "tailwind-merge": "^2.6.0", - "tailwindcss-animate": "^1.0.7" + "tailwindcss-animate": "^1.0.7", + "zustand": "^5.0.2" }, "devDependencies": { "@types/node": "^20", diff --git a/src/store/useCodeEditorStore.ts b/src/store/useCodeEditorStore.ts new file mode 100644 index 0000000..e46c7ab --- /dev/null +++ b/src/store/useCodeEditorStore.ts @@ -0,0 +1,17 @@ +import { create } from "zustand"; +import { CodeEditorState } from "@/types"; +import { DEFAULT_LANGUAGE } from "@/constants/languages"; +import { persist, createJSONStorage } from "zustand/middleware"; + +export const useCodeEditorStore = create()( + persist( + (set, get) => ({ + language: DEFAULT_LANGUAGE, + setLanguage: (language: string) => set({ language }), + }), + { + name: "language-storage", + storage: createJSONStorage(() => localStorage), + } + ) +); diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 0000000..f681da6 --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,5 @@ +export interface CodeEditorState { + language: string; + + setLanguage: (language: string) => void; +}