29 lines
819 B
TypeScript
29 lines
819 B
TypeScript
import { ChatController } from "./ChatController";
|
|
import { WebviewMessage } from "./models";
|
|
|
|
export class WebviewMessageRouter {
|
|
constructor(private readonly controller: ChatController) {}
|
|
|
|
async handle(message: WebviewMessage): Promise<void> {
|
|
switch (message.type) {
|
|
case "ready":
|
|
await this.controller.handleReady();
|
|
break;
|
|
case "send":
|
|
await this.controller.sendMessage(String(message.text || ""));
|
|
break;
|
|
case "clear":
|
|
await this.controller.startNewSession();
|
|
break;
|
|
case "menu":
|
|
await this.controller.handleMenu(String(message.action || ""));
|
|
break;
|
|
case "set-process-version":
|
|
this.controller.setProcessVersion(String(message.value || "v2"));
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|