diff --git a/frontend/src/stores/theme.ts b/frontend/src/stores/theme.ts new file mode 100644 index 0000000..ed54a79 --- /dev/null +++ b/frontend/src/stores/theme.ts @@ -0,0 +1,22 @@ +import { create } from 'zustand' +import { persist } from 'zustand/middleware' + +type Theme = 'light' | 'dark' + +interface ThemeState { + theme: Theme + toggleTheme: () => void + setTheme: (t: Theme) => void +} + +export const useThemeStore = create()( + persist( + (set) => ({ + theme: 'light', + toggleTheme: () => + set((state) => ({ theme: state.theme === 'light' ? 'dark' : 'light' })), + setTheme: (t) => set({ theme: t }), + }), + { name: 'gen2d_theme' }, + ), +)