返回 DeepSeek-Reasonix
sessionCatalogPresentation.ts
根目录 / desktop / frontend / src / lib / sessionCatalogPresentation.ts
1 import type { SessionCatalogStatus } from "./sessionCatalogTypes";
2
3 export type SessionCatalogNotice = "indexing" | "repair-active" | "repair-deferred" | "repair-blocked" | "failed" | "rebuild";
4
5 export function sessionCatalogNotice(s: SessionCatalogStatus): SessionCatalogNotice | null {
6 const { state, repairActive, repairDeferred, repairBlocked } = s;
7 return state === "opening" || state === "rebuilding"
8 ? "indexing"
9 : state === "degraded" || s.lastError
10 ? (s.canRebuild ? "rebuild" : "failed")
11 : (s.unindexedTargetCount ?? 0) > 0
12 ? "indexing"
13 : (repairActive ?? (repairDeferred === undefined && repairBlocked === undefined ? s.repairPending : 0)) > 0
14 ? "repair-active"
15 : (repairDeferred ?? 0) > 0
16 ? "repair-deferred"
17 : (repairBlocked ?? 0) > 0
18 ? "repair-blocked"
19 : null;
20 }
21
21 lines TYPESCRIPT