refactor: 清理 LOW 问题 — 样式去重、死代码删除、命名修正

- 抽取 buttons.ts 共享按钮样式,消除 3 个组件的重复定义
- store 删除未调用的 canUndo/canRedo 方法
- importFromContent 变量 ext→lower 修正确性
- CSV 导出修复 BOM 重复(exportToCsv 自带 BOM)
- Rust error.rs 添加 allow(dead_code) 消除编译警告

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-26 08:13:17 +08:00
parent d28861ff9c
commit bdbb399ddc
8 changed files with 27 additions and 45 deletions
+12 -19
View File
@@ -1,5 +1,6 @@
import { useTranslation } from 'react-i18next';
import { useAppStore } from '@/store/app-store';
import { btnClass, btnStyle } from '@/components/ui/buttons';
import { SearchInput } from './SearchInput';
import { ActionButtons } from './ActionButtons';
import { UndoRedoButtons } from './UndoRedoButtons';
@@ -26,14 +27,6 @@ export function ToolBar(props: ToolBarProps) {
const isAdmin = useAppStore((s) => s.isAdmin);
const isModified = useAppStore((s) => s.isModified);
const sysBtnClass =
'px-3 py-1 text-sm rounded border transition-colors disabled:opacity-40 disabled:cursor-not-allowed';
const sysBtnStyle = {
backgroundColor: 'var(--app-bg)',
color: 'var(--app-fg)',
borderColor: 'var(--app-border)',
};
return (
<div className="space-y-2 pb-2 border-b" style={{ borderColor: 'var(--app-border)' }}>
{/* 第一行: 搜索 + 系统按钮 */}
@@ -42,38 +35,38 @@ export function ToolBar(props: ToolBarProps) {
<div className="flex-1" />
<UndoRedoButtons />
<button
className={sysBtnClass}
style={sysBtnStyle}
className={btnClass}
style={btnStyle}
disabled={!isAdmin}
onClick={props.onImport}
>
{t('button.import')}
</button>
<button className={sysBtnClass} style={sysBtnStyle} onClick={props.onExport}>
<button className={btnClass} style={btnStyle} onClick={props.onExport}>
{t('button.export')}
</button>
<button
className={sysBtnClass}
className={btnClass}
style={{
...sysBtnStyle,
backgroundColor: isModified ? '#2563eb' : sysBtnStyle.backgroundColor,
color: isModified ? '#fff' : sysBtnStyle.color,
...btnStyle,
backgroundColor: isModified ? '#2563eb' : btnStyle.backgroundColor,
color: isModified ? '#fff' : btnStyle.color,
}}
disabled={!isAdmin}
onClick={props.onSave}
>
{t('button.save')}
</button>
<button className={sysBtnClass} style={sysBtnStyle} onClick={props.onCancel}>
<button className={btnClass} style={btnStyle} onClick={props.onCancel}>
{t('button.cancel')}
</button>
<button className={sysBtnClass} style={sysBtnStyle} onClick={props.onHelp}>
<button className={btnClass} style={btnStyle} onClick={props.onHelp}>
{t('button.help')}
</button>
<button className={sysBtnClass} style={sysBtnStyle} onClick={props.onLanguage}>
<button className={btnClass} style={btnStyle} onClick={props.onLanguage}>
{t('button.language')}
</button>
<button className={sysBtnClass} style={sysBtnStyle} onClick={props.onDarkMode}>
<button className={btnClass} style={btnStyle} onClick={props.onDarkMode}>
{t('button.darkMode')}
</button>
</div>