- 添加深色模式适配,跟随系统主题自动切换 - 替换硬编码样式为CSS变量实现主题统一管理 - 重构后端统计计算逻辑,优化当日用电估算方式 - 更新页面标题与站点图标,调整登录页样式 - 移除冗余的data目录拷贝配置
37 lines
969 B
JavaScript
37 lines
969 B
JavaScript
import { useState, useEffect } from 'react';
|
|
import ReactDOM from 'react-dom/client';
|
|
import { ConfigProvider, theme } from 'antd';
|
|
import App from './App';
|
|
|
|
function Root() {
|
|
const [isDark, setIsDark] = useState(() =>
|
|
window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
);
|
|
|
|
useEffect(() => {
|
|
const mq = window.matchMedia('(prefers-color-scheme: dark)');
|
|
const handler = (e) => setIsDark(e.matches);
|
|
mq.addEventListener('change', handler);
|
|
return () => mq.removeEventListener('change', handler);
|
|
}, []);
|
|
|
|
return (
|
|
<ConfigProvider
|
|
theme={{
|
|
algorithm: isDark ? theme.darkAlgorithm : theme.defaultAlgorithm,
|
|
token: {
|
|
colorPrimary: '#4a90e2',
|
|
borderRadius: 8,
|
|
fontSize: 14,
|
|
},
|
|
}}
|
|
>
|
|
<div data-theme={isDark ? 'dark' : 'light'}>
|
|
<App />
|
|
</div>
|
|
</ConfigProvider>
|
|
);
|
|
}
|
|
|
|
ReactDOM.createRoot(document.getElementById('root')).render(<Root />);
|