From 29db9ae9b50defcf326ba6cd3be509a31fea5619 Mon Sep 17 00:00:00 2001 From: freefire Date: Tue, 15 Sep 2026 05:04:25 +0800 Subject: [PATCH] feat(frontend): add theme real-time sync feature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 新增ThemeSync组件实现站点主题色无刷新同步 2. 给获取站点设置的接口添加no-store缓存策略确保拿到最新配置 3. 调整主题应用代码的属性设置顺序避免逻辑问题 --- frontend/app/layout.tsx | 2 + frontend/components/ThemeSync.tsx | 70 +++++++++++++++++++++++++++++++ frontend/lib/api.ts | 3 +- frontend/lib/theme.ts | 2 +- 4 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 frontend/components/ThemeSync.tsx diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx index 490f4a1..b4a8370 100644 --- a/frontend/app/layout.tsx +++ b/frontend/app/layout.tsx @@ -6,6 +6,7 @@ import Header from "@/components/Header"; import Footer from "@/components/Footer"; import Toaster from "@/components/Toaster"; import AccountGuard from "@/components/AccountGuard"; +import ThemeSync from "@/components/ThemeSync"; import type { User } from "@/lib/api"; import { getMeCached, getPublicSettingsCached } from "@/lib/serverData"; import { TOKEN_COOKIE, REFRESH_COOKIE, authCookieHeader } from "@/lib/cookies"; @@ -104,6 +105,7 @@ export default async function RootLayout({