diff --git a/src/app/(main)/components/language-selector.tsx b/src/app/(main)/components/language-selector.tsx index f1a9424..c5ae98a 100644 --- a/src/app/(main)/components/language-selector.tsx +++ b/src/app/(main)/components/language-selector.tsx @@ -5,8 +5,8 @@ import { SelectContent, SelectTrigger, } from "@/components/ui/select"; -import { SUPPORTED_LANGUAGES } from "@/constants/languages"; import { useCodeEditorStore } from "@/store/useCodeEditorStore"; +import { SUPPORTED_LANGUAGES } from "@/constants/editor/languages"; export default function LanguageSelector() { const { language, setLanguage } = useCodeEditorStore(); diff --git a/src/app/(main)/components/theme-selector.tsx b/src/app/(main)/components/theme-selector.tsx index 28bb7f1..3df140f 100644 --- a/src/app/(main)/components/theme-selector.tsx +++ b/src/app/(main)/components/theme-selector.tsx @@ -6,7 +6,7 @@ import { SelectTrigger, } from "@/components/ui/select"; import { Palette } from "lucide-react"; -import { SUPPORTED_THEMES } from "@/constants/themes"; +import { SUPPORTED_THEMES } from "@/constants/editor/themes"; import { useCodeEditorStore } from "@/store/useCodeEditorStore"; export default function ThemeSelector() { diff --git a/src/constants/languages.ts b/src/constants/editor/languages.ts similarity index 100% rename from src/constants/languages.ts rename to src/constants/editor/languages.ts diff --git a/src/constants/editor/options.ts b/src/constants/editor/options.ts new file mode 100644 index 0000000..6ab9ab2 --- /dev/null +++ b/src/constants/editor/options.ts @@ -0,0 +1,5 @@ +export const MIN_FONT_SIZE = 8; + +export const MAX_FONT_SIZE = 24; + +export const DEFAULT_FONT_SIZE = 16; diff --git a/src/constants/themes.ts b/src/constants/editor/themes.ts similarity index 100% rename from src/constants/themes.ts rename to src/constants/editor/themes.ts diff --git a/src/store/useCodeEditorStore.ts b/src/store/useCodeEditorStore.ts index 71ad224..83809d7 100644 --- a/src/store/useCodeEditorStore.ts +++ b/src/store/useCodeEditorStore.ts @@ -1,16 +1,20 @@ import { create } from "zustand"; import { CodeEditorState } from "@/types"; -import { DEFAULT_THEME } from "@/constants/themes"; -import { DEFAULT_LANGUAGE } from "@/constants/languages"; +import { DEFAULT_THEME } from "@/constants/editor/themes"; +import { DEFAULT_LANGUAGE } from "@/constants/editor/languages"; import { persist, createJSONStorage } from "zustand/middleware"; +import { DEFAULT_FONT_SIZE } from "@/constants/editor/options"; export const useCodeEditorStore = create()( persist( - (set, get) => ({ + (set) => ({ language: DEFAULT_LANGUAGE, theme: DEFAULT_THEME, + fontSize: DEFAULT_FONT_SIZE, + setLanguage: (language: string) => set({ language }), setTheme: (theme: string) => set({ theme }), + setFontSize: (fontSize: number) => set({ fontSize }), }), { name: "code-editor-storage", diff --git a/src/types/index.ts b/src/types/index.ts index 44ecddc..df52baa 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,7 +1,9 @@ export interface CodeEditorState { language: string; theme: string; + fontSize: number; setLanguage: (language: string) => void; setTheme: (theme: string) => void; + setFontSize: (fontSize: number) => void; }