murashit_codex-panel/src/features/chat/panel/view-state.ts
2026-06-14 19:14:41 +09:00

23 lines
821 B
TypeScript

import { parseRestoredThreadState } from "./snapshot";
import type { RestoredThreadState } from "../application/lifecycle";
export interface ChatViewStateHost {
invalidateResumeWork: () => void;
clearRestoredThreadLifecycle: () => void;
clearDeferredRestoredThreadHydration: () => void;
scheduleDeferredAppServerWarmup: () => void;
restoreThreadPlaceholder: (restoredThread: RestoredThreadState) => void;
}
export function applyChatViewState(host: ChatViewStateHost, state: unknown): void {
const restoredThread = parseRestoredThreadState(state);
if (!restoredThread) {
host.invalidateResumeWork();
host.clearRestoredThreadLifecycle();
host.clearDeferredRestoredThreadHydration();
host.scheduleDeferredAppServerWarmup();
return;
}
host.restoreThreadPlaceholder(restoredThread);
}