741add4411
- Create UserMessageComponent - handles user messages with spacing - Create AssistantMessageComponent - handles complete assistant messages - Create ThinkingSelectorComponent - wraps selector with borders - Add setSelectedIndex to SelectList for preselecting current level - Simplify tui-renderer by using dedicated components - Much cleaner architecture - each message type is now a component
24 lines
608 B
TypeScript
24 lines
608 B
TypeScript
import { Container, Markdown, Spacer } from "@mariozechner/pi-tui";
|
|
|
|
/**
|
|
* Component that renders a user message
|
|
*/
|
|
export class UserMessageComponent extends Container {
|
|
private spacer: Spacer | null = null;
|
|
private markdown: Markdown;
|
|
|
|
constructor(text: string, isFirst: boolean) {
|
|
super();
|
|
|
|
// Add spacer before user message (except first one)
|
|
if (!isFirst) {
|
|
this.spacer = new Spacer(1);
|
|
this.addChild(this.spacer);
|
|
}
|
|
|
|
// User messages with dark gray background
|
|
this.markdown = new Markdown(text, undefined, undefined, { r: 52, g: 53, b: 65 });
|
|
this.addChild(this.markdown);
|
|
}
|
|
}
|