diff --git a/frontend/src/components/Sidebar.tsx b/frontend/src/components/Sidebar.tsx
index 76c128e..84c65d6 100644
--- a/frontend/src/components/Sidebar.tsx
+++ b/frontend/src/components/Sidebar.tsx
@@ -66,10 +66,14 @@ const TOOL_GROUPS: { label: string; items: { to: string; icon: typeof Search; la
function useDarkMode() {
const [dark, setDark] = useState(() => {
if (typeof window === "undefined") return false;
- return localStorage.getItem("theme") === "dark";
+ const saved = localStorage.getItem("theme");
+ if (saved) return saved === "dark";
+ // 首次访问跟随系统偏好
+ return window.matchMedia?.("(prefers-color-scheme: dark)").matches ?? false;
});
useEffect(() => {
const root = document.documentElement;
+ root.classList.add("theme-transition");
if (dark) {
root.classList.add("dark");
localStorage.setItem("theme", "dark");
@@ -77,6 +81,8 @@ function useDarkMode() {
root.classList.remove("dark");
localStorage.setItem("theme", "light");
}
+ const t = setTimeout(() => root.classList.remove("theme-transition"), 300);
+ return () => clearTimeout(t);
}, [dark]);
return [dark, () => setDark((d) => !d)] as const;
}
@@ -181,7 +187,7 @@ export default function Sidebar() {
- v0.2.0
+ v2.1
diff --git a/frontend/src/pages/JobMonitor.tsx b/frontend/src/pages/JobMonitor.tsx
index 2ad648d..71c4790 100644
--- a/frontend/src/pages/JobMonitor.tsx
+++ b/frontend/src/pages/JobMonitor.tsx
@@ -130,7 +130,7 @@ export default function JobMonitor() {
: "bg-orange-100 text-orange-700"
}`}
>
- {(j as any).authority === "go_core" ? "Go" : "Py"}
+ {(j as any).authority === "go_core" ? "Go" : "存档"}
)}
{j.id}