import { useCallback, useState } from "react"; import { SettingsPageHeader } from "../components/SettingsPageheader"; import { SelectMenuBasic } from "../components/SelectMenuBasic"; import { SettingsItem } from "./devices.$id.settings"; export default function SettingsAppearanceRoute() { const [currentTheme, setCurrentTheme] = useState(() => { return localStorage.theme || "system"; }); const handleThemeChange = useCallback((value: string) => { const root = document.documentElement; if (value === "system") { localStorage.removeItem("theme"); // Check system preference const systemTheme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; root.classList.remove("light", "dark"); root.classList.add(systemTheme); } else { localStorage.theme = value; root.classList.remove("light", "dark"); root.classList.add(value); } }, []); return (
{ setCurrentTheme(e.target.value); handleThemeChange(e.target.value); }} />
); }