返回 DeepSeek-Reasonix
inboxEvents.ts
根目录 / desktop / frontend / src / lib / inboxEvents.ts
1 import { desktopHost } from "./desktopHost";
2
3 export type InboxChangedEvent = {
4 tabId: string;
5 sessionPath?: string;
6 revision?: number;
7 };
8
9 export function onInboxChanged(cb: (event: InboxChangedEvent) => void): () => void {
10 const host = desktopHost();
11 if (host.kind !== "none") {
12 return host.events.on("InboxChanged", (payload?: unknown) => {
13 const tabId = payload && typeof payload === "object" && "tabId" in payload
14 ? String((payload as { tabId?: unknown }).tabId ?? "")
15 : "";
16 const sessionPath = payload && typeof payload === "object" && "sessionPath" in payload
17 ? String((payload as { sessionPath?: unknown }).sessionPath ?? "")
18 : undefined;
19 const rawRevision = payload && typeof payload === "object" && "revision" in payload
20 ? Number((payload as { revision?: unknown }).revision)
21 : NaN;
22 cb({ tabId, sessionPath, revision: Number.isFinite(rawRevision) ? rawRevision : undefined });
23 });
24 }
25 return () => {};
26 }
27
27 lines TYPESCRIPT