Files
pgz-sport/_design_master/theme.ts
T

15 lines
470 B
TypeScript

import { create } from "zustand";
type Theme = "dark" | "light";
interface ThemeStore { theme: Theme; toggle: () => void; }
export const useTheme = create<ThemeStore>((set) => ({
theme: (localStorage.getItem("theme") as Theme) || "dark",
toggle: () => set((s) => {
const next = s.theme === "dark" ? "light" : "dark";
localStorage.setItem("theme", next);
document.documentElement.setAttribute("data-theme", next);
return { theme: next };
}),
}));