1
0
Files
nex/frontend/src/App.tsx
lanyuanxiaoyao ddd284c1ca feat: 实现多主题系统,支持6套主题切换和设置页面
重构 ThemeContext 为多主题模型(themeId + followSystem + systemIsDark),
新增设置页面(主题下拉栏 + 跟随系统开关),移除旧 ThemeToggle 按钮,
引入 antd-style 和 clsx 依赖支持 MUI/shadcn/Bootstrap/玻璃主题。
2026-04-17 00:06:08 +08:00

42 lines
940 B
TypeScript

import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { BrowserRouter } from 'react-router';
import { ConfigProvider } from 'antd';
import { AppRoutes } from '@/routes';
import { ThemeProvider, useTheme } from '@/contexts/ThemeContext';
import { useThemeConfig } from '@/themes';
const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: 30_000,
retry: 1,
refetchOnWindowFocus: false,
},
},
});
function ThemedApp() {
const { effectiveThemeId } = useTheme();
const configProps = useThemeConfig(effectiveThemeId);
return (
<ConfigProvider {...configProps}>
<BrowserRouter>
<AppRoutes />
</BrowserRouter>
</ConfigProvider>
);
}
function App() {
return (
<QueryClientProvider client={queryClient}>
<ThemeProvider>
<ThemedApp />
</ThemeProvider>
</QueryClientProvider>
);
}
export default App;