mirror of
https://github.com/murashit/codex-panel.git
synced 2026-07-22 17:30:31 +00:00
23 lines
821 B
TypeScript
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);
|
|
}
|