1
0

chore: 强化代码质量与风格检查体系

ESLint 升级到 recommended-type-checked + stylistic-type-checked,
引入 perfectionist 导入排序和 import 插件导入验证。

Prettier 显式声明全部格式化参数,消除跨环境差异。
TypeScript 启用 noUnusedLocals 和 noPropertyAccessFromIndexSignature。
完善 ignore 列表,排除 .agents/、bun.lock、data/ 等。
引入 husky + lint-staged(pre-commit)+ commitlint(commit-msg)。
更新 DEVELOPMENT.md 代码质量章节。
修复所有新增规则检测到的类型和风格违规。
This commit is contained in:
2026-05-12 18:44:59 +08:00
parent ce8baae3d1
commit a5cf6065c2
83 changed files with 2654 additions and 1824 deletions

View File

@@ -1,27 +1,28 @@
import { Alert, Loading, Typography } from "tdesign-react";
import { useSummary, useTargets, useTargetDetail } from "./hooks/useTargetDetail";
import { SummaryCards } from "./components/SummaryCards";
import { TargetBoard } from "./components/TargetBoard";
import { TargetDetailDrawer } from "./components/TargetDetailDrawer";
import { useSummary, useTargetDetail, useTargets } from "./hooks/useTargetDetail";
export function App() {
const { data: summary, isLoading: summaryLoading, error: summaryError } = useSummary();
const { data: targets, isLoading: targetsLoading, error: targetsError } = useTargets();
const { data: summary, error: summaryError, isLoading: summaryLoading } = useSummary();
const { data: targets, error: targetsError, isLoading: targetsLoading } = useTargets();
const {
selectedTarget,
trendData,
trendLoading,
closeDrawer,
handlePageChange,
handleTimeChange,
historyData,
historyLoading,
openDrawer,
selectedTarget,
timeFrom,
timeTo,
openDrawer,
closeDrawer,
handleTimeChange,
handlePageChange,
trendData,
trendLoading,
} = useTargetDetail();
const error = summaryError || targetsError;
const error = summaryError ?? targetsError;
return (
<main className="dashboard">
@@ -30,29 +31,29 @@ export function App() {
<Typography.Text theme="secondary"></Typography.Text>
</header>
{error && <Alert theme="error" message={`请求失败: ${error.message}`} closeBtn />}
{error && <Alert closeBtn message={`请求失败: ${error.message}`} theme="error" />}
{summaryLoading && targetsLoading ? (
<Loading />
) : (
<>
<SummaryCards summary={summary ?? null} />
<TargetBoard targets={targets ?? []} onTargetClick={openDrawer} />
<TargetBoard onTargetClick={openDrawer} targets={targets ?? []} />
</>
)}
<TargetDetailDrawer
key={selectedTarget?.id}
target={selectedTarget}
trendData={trendData}
trendLoading={trendLoading}
historyData={historyData}
historyLoading={historyLoading}
key={selectedTarget?.id}
onClose={closeDrawer}
onPageChange={handlePageChange}
onTimeChange={handleTimeChange}
target={selectedTarget}
timeFrom={timeFrom}
timeTo={timeTo}
onTimeChange={handleTimeChange}
onPageChange={handlePageChange}
onClose={closeDrawer}
trendData={trendData}
trendLoading={trendLoading}
/>
</main>
);