murashit_codex-panel/src/features/chat/ui/message-stream/render-state.ts
2026-06-11 18:01:35 +09:00

20 lines
964 B
TypeScript

import type { ChatState } from "../../state/reducer";
import type { MessageStreamScrollIntent, MessageStreamVirtualizerHandle } from "../message-virtualizer";
import { messageStreamBlocks } from "./blocks";
import { createMessageStreamContext, type ChatMessageStreamContextPort } from "./context-builder";
import type { MessageStreamRenderState } from "./render";
export interface MessageStreamRenderStateOptions {
state: ChatState;
contextPort: ChatMessageStreamContextPort;
consumeScrollIntent: () => MessageStreamScrollIntent;
registerVirtualizer: (virtualizer: MessageStreamVirtualizerHandle) => () => void;
}
export function createMessageStreamRenderState(options: MessageStreamRenderStateOptions): MessageStreamRenderState {
return {
blocks: messageStreamBlocks(createMessageStreamContext(options.state, options.contextPort)),
consumeScrollIntent: options.consumeScrollIntent,
registerVirtualizer: options.registerVirtualizer,
};
}