Skip to content

Commit cd5ce4f

Browse files
authored
Merge pull request #8 from weizwz/dev
Dev
2 parents 6a9f4a4 + 078c5c9 commit cd5ce4f

File tree

6 files changed

+263
-288
lines changed

6 files changed

+263
-288
lines changed

app/globals.css

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@
7171
/* 卡片阴影 */
7272
--card-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
7373
--card-shadow-hover: 0 4px 12px 0 rgba(0, 0, 0, 0.5);
74+
75+
/* Ant Design 变量覆盖 - 解决暗黑模式闪烁问题 */
76+
--ant-color-bg-container: #141414;
77+
--ant-color-bg-layout: #000000;
78+
--ant-color-text: rgba(255, 255, 255, 0.85);
79+
--ant-color-text-base: #fff;
7480
}
7581

7682
/* 基础样式 */

components/Providers.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ function AntdThemeProvider({ children }: { children: React.ReactNode }) {
3030
locale={zhCN}
3131
theme={{
3232
algorithm: isDark ? antdTheme.darkAlgorithm : antdTheme.defaultAlgorithm,
33+
cssVar: true,
3334
token: {
3435
colorPrimary: '#1890ff',
3536
borderRadius: 8,

components/layout/ThemeToggle.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,15 @@ export default function ThemeToggle() {
2323
setMounted(true);
2424
}, []);
2525

26-
// 同步 Redux 主题到 next-themes
26+
// 同步 next-themes 主题到 Redux
27+
// next-themes 是单一事实来源,Redux 只是为了保持状态一致性以便其他组件使用
2728
useEffect(() => {
28-
if (reduxTheme && nextTheme !== reduxTheme) {
29-
setNextTheme(reduxTheme);
29+
if (nextTheme && (nextTheme === 'light' || nextTheme === 'dark' || nextTheme === 'system')) {
30+
if (reduxTheme !== nextTheme) {
31+
dispatch(setTheme(nextTheme as ThemeMode));
32+
}
3033
}
31-
}, [reduxTheme, nextTheme, setNextTheme]);
34+
}, [nextTheme, reduxTheme, dispatch]);
3235

3336
// 确定当前实际显示的主题
3437
const currentTheme = nextTheme === 'system' ? systemTheme : nextTheme;
@@ -55,13 +58,10 @@ export default function ThemeToggle() {
5558
*/
5659
const toggleTheme = () => {
5760
// 在 light 和 dark 之间切换
58-
const newTheme: ThemeMode = isDark ? 'light' : 'dark';
59-
60-
// 更新 next-themes
61+
const newTheme = isDark ? 'light' : 'dark';
62+
63+
// 只更新 next-themes,useEffect 会自动同步到 Redux
6164
setNextTheme(newTheme);
62-
63-
// 更新 Redux store(会自动保存到 LocalStorage)
64-
dispatch(setTheme(newTheme));
6565
};
6666

6767
/**
@@ -76,7 +76,7 @@ export default function ThemeToggle() {
7676
<Button
7777
type="text"
7878
icon={isDark ? <SunOutlined aria-hidden="true" /> : <MoonOutlined aria-hidden="true" />}
79-
size='large'
79+
size="large"
8080
onClick={toggleTheme}
8181
className="transition-theme flex items-center justify-center"
8282
aria-label={getTooltipTitle()}

components/management/DataTable.tsx

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ export const DataTable: React.FC<DataTableProps> = ({
5151
onSelectionChange,
5252
}) => {
5353
const [internalSelectedRowKeys, setInternalSelectedRowKeys] = useState<React.Key[]>([]);
54-
const [pageSize, setPageSize] = useState(100);
55-
const [currentPage, setCurrentPage] = useState(1);
5654
const [expandedRowKeys, setExpandedRowKeys] = useState<React.Key[]>([]);
5755

5856
// 获取分类数据
@@ -339,21 +337,7 @@ export const DataTable: React.FC<DataTableProps> = ({
339337
onExpandedRowsChange: (keys) => setExpandedRowKeys([...keys]),
340338
// defaultExpandAllRows: true,
341339
}}
342-
pagination={{
343-
current: currentPage,
344-
pageSize: pageSize,
345-
showSizeChanger: true,
346-
showTotal: () => {
347-
const categoryCount = treeData.length;
348-
const linkCount = links.length;
349-
return `共 ${categoryCount} 个分类,${linkCount} 条链接`;
350-
},
351-
onChange: (page, size) => {
352-
setCurrentPage(page);
353-
setPageSize(size);
354-
},
355-
pageSizeOptions: ['10', '20', '50', '100'],
356-
}}
340+
pagination={false}
357341
scroll={{ x: 1200 }}
358342
/>
359343
</div>

0 commit comments

Comments
 (0)