UNPKG

@restnfeel/agentc-starter-kit

Version:

한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템

59 lines (49 loc) 1.34 kB
/** * @fileoverview Theme management hook * @module hooks/useTheme */ import { useCallback, useState } from "react"; export interface Theme { mode: "light" | "dark"; primaryColor: string; backgroundColor: string; textColor: string; borderColor: string; } export interface UseThemeReturn { theme: Theme; setTheme: (theme: Partial<Theme>) => void; toggleMode: () => void; resetTheme: () => void; } const defaultTheme: Theme = { mode: "light", primaryColor: "#007bff", backgroundColor: "#ffffff", textColor: "#333333", borderColor: "#e0e0e0", }; export function useTheme(): UseThemeReturn { const [theme, setThemeState] = useState<Theme>(defaultTheme); const setTheme = useCallback((updates: Partial<Theme>) => { setThemeState((prev) => ({ ...prev, ...updates })); }, []); const toggleMode = useCallback(() => { setThemeState((prev) => ({ ...prev, mode: prev.mode === "light" ? "dark" : "light", backgroundColor: prev.mode === "light" ? "#1a1a1a" : "#ffffff", textColor: prev.mode === "light" ? "#ffffff" : "#333333", borderColor: prev.mode === "light" ? "#333333" : "#e0e0e0", })); }, []); const resetTheme = useCallback(() => { setThemeState(defaultTheme); }, []); return { theme, setTheme, toggleMode, resetTheme, }; }