mirror of
https://github.com/murashit/codex-panel.git
synced 2026-07-22 17:30:31 +00:00
32 lines
848 B
TypeScript
32 lines
848 B
TypeScript
import type { ComponentChild as UiNode } from "preact";
|
|
|
|
import type { ChatStateStore } from "../state/reducer";
|
|
import { renderChatPanelShell } from "../ui/shell";
|
|
|
|
export interface ChatShellRenderPort {
|
|
render(root: HTMLElement): void;
|
|
}
|
|
|
|
export function createChatShellRenderPort(
|
|
stateStore: ChatStateStore,
|
|
options: {
|
|
showToolbar: () => boolean;
|
|
toolbarNode: () => UiNode;
|
|
goalNode: () => UiNode;
|
|
messageStreamNode: () => UiNode;
|
|
composerNode: () => UiNode;
|
|
},
|
|
): ChatShellRenderPort {
|
|
return {
|
|
render(root) {
|
|
renderChatPanelShell(root, {
|
|
stateStore,
|
|
showToolbar: options.showToolbar(),
|
|
toolbarNode: options.toolbarNode,
|
|
goalNode: options.goalNode,
|
|
messageStreamNode: options.messageStreamNode,
|
|
composerNode: options.composerNode,
|
|
});
|
|
},
|
|
};
|
|
}
|