first commit

Co-Authored-By: Codex <noreply@openai.com>
This commit is contained in:
HouYunFei
2026-05-19 19:50:36 +08:00
co-authored by Codex
commit 472bf8b732
133 changed files with 16869 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
"use client";
import { useEffect } from "react";
import { create } from "zustand";
import { persist } from "zustand/middleware";
export type ThemeName = "light" | "dark";
type ThemeStore = {
theme: ThemeName;
setTheme: (theme: ThemeName) => void;
};
export const useThemeStore = create<ThemeStore>()(
persist(
(set) => ({
theme: "dark",
setTheme: (theme) => set({ theme }),
}),
{ name: "infinite-canvas:theme_store" },
),
);
export function useSyncThemeClass() {
const theme = useThemeStore((state) => state.theme);
useEffect(() => {
document.documentElement.classList.toggle("dark", theme === "dark");
document.documentElement.style.colorScheme = theme;
}, [theme]);
}