feat: implement HeaderBar and ScanTerminal UI layout components for dashboard navigation and decision workspace
This commit is contained in:
@@ -122,19 +122,7 @@ export function ScanTerminalTopBar({
|
||||
{isEn ? "Sign in" : "登录"}
|
||||
</Link>
|
||||
)}
|
||||
<button
|
||||
type="button"
|
||||
className="scan-theme-button"
|
||||
aria-label={
|
||||
themeMode === "light" ? "切换到暗色模式" : "切换到明亮模式"
|
||||
}
|
||||
title={themeMode === "light" ? "切换到暗色模式" : "切换到明亮模式"}
|
||||
onClick={() =>
|
||||
setThemeMode((current) => (current === "light" ? "dark" : "light"))
|
||||
}
|
||||
>
|
||||
{themeMode === "light" ? <Moon size={15} /> : <Sun size={15} />}
|
||||
</button>
|
||||
|
||||
{isAuthenticated ? (
|
||||
<Link
|
||||
href={accountHref}
|
||||
|
||||
@@ -20,30 +20,13 @@ export function useUserLocalClock() {
|
||||
}
|
||||
|
||||
export function useScanTerminalTheme() {
|
||||
const [themeMode, setThemeMode] = useState<ThemeMode>("dark");
|
||||
const [themeMode] = useState<ThemeMode>("light");
|
||||
|
||||
useEffect(() => {
|
||||
const root = document.documentElement;
|
||||
const hadLight = root.classList.contains("light");
|
||||
const hadDark = root.classList.contains("dark");
|
||||
root.classList.toggle("light", themeMode === "light");
|
||||
root.classList.toggle("dark", themeMode === "dark");
|
||||
return () => {
|
||||
root.classList.toggle("light", hadLight);
|
||||
root.classList.toggle("dark", hadDark);
|
||||
};
|
||||
}, [themeMode]);
|
||||
|
||||
useEffect(() => {
|
||||
const stored = window.localStorage.getItem("polyweather_scan_theme");
|
||||
if (stored === "light") {
|
||||
setThemeMode("light");
|
||||
}
|
||||
root.classList.add("light");
|
||||
root.classList.remove("dark");
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
window.localStorage.setItem("polyweather_scan_theme", themeMode);
|
||||
}, [themeMode]);
|
||||
|
||||
return { setThemeMode, themeMode };
|
||||
return { setThemeMode: () => {}, themeMode };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user