diff --git a/frontend/src/components/rectification-board.tsx b/frontend/src/components/rectification-board.tsx index cd06bc43..5414a752 100644 --- a/frontend/src/components/rectification-board.tsx +++ b/frontend/src/components/rectification-board.tsx @@ -17,6 +17,7 @@ import { windowScanLayerLabel, type WindowScanLayer, } from "@/lib/rectification-agentic/v9/refinement-packet"; +import { rectificationBoardEmptyCopy } from "@/lib/rectification-surface-state"; import { RectificationHouseTableView } from "./rectification-house-table"; import { ConfirmationGateDisclosure, TechniqueAuditDisclosure } from "./technique-audit-disclosure"; @@ -35,6 +36,7 @@ function LayerChips({ layers }: Readonly<{ layers: readonly WindowScanLayer[] }> function RectificationBoardBody({ result, + declaredTime, savedStatus, diff, compact, @@ -42,6 +44,7 @@ function RectificationBoardBody({ onClose, }: Readonly<{ result: RectificationCandidateResult | null; + declaredTime: string | null; savedStatus: "accepted" | "confirmed" | null; diff: RectificationBoardDiff; compact: boolean; @@ -50,6 +53,7 @@ function RectificationBoardBody({ }>) { const table = result ? workingRectificationHouseTable(result) : null; const workingTime = workingRectificationTime(result); + const emptyCopy = rectificationBoardEmptyCopy(declaredTime); const grouped = result ? groupWindowTransitions(result.windowTransitions) : []; const scoringMinutes = grouped.filter((row) => row.scoringLayers.length > 0); const displayMinutes = grouped.filter((row) => row.displayLayers.length > 0); @@ -69,7 +73,11 @@ function RectificationBoardBody({

当前盘面

- {workingTime ? {workingTime} : null} + {workingTime + ? {workingTime} + : emptyCopy.clock + ? {emptyCopy.clock} + : null} {compact && ( ))}
diff --git a/frontend/src/lib/rectification-board-model.ts b/frontend/src/lib/rectification-board-model.ts index 13493b5e..29e829a8 100644 --- a/frontend/src/lib/rectification-board-model.ts +++ b/frontend/src/lib/rectification-board-model.ts @@ -160,13 +160,18 @@ export function diffRectificationBoard( }; } -export function rectificationBoardPeekCopy(result: RectificationCandidateResult | null): Readonly<{ +export function rectificationBoardPeekCopy( + result: RectificationCandidateResult | null, + declaredTime: string | null = null, +): Readonly<{ title: string; detail: string | null; }> { const table = result ? workingRectificationHouseTable(result) : null; if (!table) { - return { title: "当前盘面", detail: "补充经历后会在这里更新" }; + // Before any candidate exists the board still has a time to show: the one + // the reader declared (BUG-483). Without one, say what fills it later. + return { title: "当前盘面", detail: declaredTime ? `填报 ${declaredTime}` : "补充经历后会在这里更新" }; } return { title: "当前盘面", detail: `${table.time} · 上升${table.lagna}` }; }