in src/p5js_playground/playground.tsx [260:296]
async sendMessageAction(message?: string, role?: string) {
if (this.chatState !== ChatState.IDLE) return;
this.chatState = ChatState.GENERATING;
let msg = '';
if (message) {
msg = message.trim();
} else {
// get message and empty the field
msg = this.inputMessage.trim();
this.inputMessage = '';
}
if (msg.length === 0) {
this.chatState = ChatState.IDLE;
return;
}
const msgRole = role ? role.toLowerCase() : 'user';
if (msgRole === 'user' && msg) {
this.addMessage(msgRole, msg);
}
if (this.sendMessageHandler) {
await this.sendMessageHandler(
msg,
msgRole,
this.code,
this.codeHasChanged,
);
this.codeHasChanged = false;
}
this.chatState = ChatState.IDLE;
}