import { useTheme } from "../core/hooks/useTheme.ts"; import { cn } from "../core/utils/cn.ts"; import { Monitor, Moon, Sun } from "lucide-react"; import { useTranslation } from "react-i18next"; type ThemePreference = "light" | "dark" | "system"; export default function ThemeSwitcher({ className = "", }: { className?: string; }) { const { preference, setPreference } = useTheme(); const { t } = useTranslation(); const themeIcons = { light: , dark: , system: , }; const toggleTheme = () => { const preferences: ThemePreference[] = ["light", "dark", "system"]; const currentIndex = preferences.indexOf(preference); const nextPreference = preferences[(currentIndex + 1) % preferences.length]; setPreference(nextPreference); }; const preferenceDisplayMap: Record = { light: t("theme_preference_light"), dark: t("theme_preference_dark"), system: t("theme_preference_system"), }; const currentDisplayPreference = preferenceDisplayMap[preference]; return ( ); }