mirror of
https://github.com/murashit/codex-panel.git
synced 2026-07-22 06:57:10 +00:00
20 lines
964 B
TypeScript
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,
|
|
};
|
|
}
|