From 6c712775130c5bcc300e8342bbbcee1efcd73554 Mon Sep 17 00:00:00 2001 From: HanishKVC Date: Tue, 21 May 2024 20:19:25 +0530 Subject: [PATCH] SimpleChat:MCUI: CreateSessionBtn helper, use wrt NewChat Also fix a oversight wrt using stale data wrt the list of chat sessions. --- .../server/public_simplechat/simplechat.js | 40 ++++++++++++------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/examples/server/public_simplechat/simplechat.js b/examples/server/public_simplechat/simplechat.js index 5a3fe0943..6eec26586 100644 --- a/examples/server/public_simplechat/simplechat.js +++ b/examples/server/public_simplechat/simplechat.js @@ -383,30 +383,40 @@ class MultiChatUI { elDiv.replaceChildren(); let chatIds = Object.keys(this.simpleChats); for(let cid of chatIds) { - let btn = el_create_button(cid, (ev)=>{ - let target = /** @type{HTMLButtonElement} */(ev.target); - console.debug(`DBUG:MCUI:SessionClick:${target.id}`); - if (this.elInUser.disabled) { - console.error(`ERRR:MCUI:SessionClick:${target.id}:Current session [${this.curChatId}] awaiting response, ignoring switch...`); - alert("ERRR:MCUI\nWait for response to pending query, before switching"); - return; - } - this.handle_session_switch(target.id); - el_children_config_class(elDiv, target.id, "session-selected", ""); - }); + let btn = this.create_session_btn(elDiv, cid); if (cid == this.curChatId) { btn.className = "session-selected"; } - elDiv.appendChild(btn); } let btnNew = el_create_button("NeW cHaT", (ev)=> { - let chatId = `Chat${chatIds.length}`; - let chatName = prompt("SimpleChat:MCUI:\nEnter id for new chat session", chatId); - this.new_chat_session(chatId, true); + let chatId = `Chat${Object.keys(this.simpleChats).length}`; + let chatIdGot = prompt("SimpleChat:MCUI:\nEnter id for new chat session", chatId); + if (!chatIdGot) { + chatIdGot = chatId; + } + this.new_chat_session(chatIdGot, true); + this.create_session_btn(elDiv, chatIdGot); + el_children_config_class(elDiv, chatIdGot, "session-selected", ""); }); elDiv.appendChild(btnNew); } + create_session_btn(elDiv, cid) { + let btn = el_create_button(cid, (ev)=>{ + let target = /** @type{HTMLButtonElement} */(ev.target); + console.debug(`DBUG:MCUI:SessionClick:${target.id}`); + if (this.elInUser.disabled) { + console.error(`ERRR:MCUI:SessionClick:${target.id}:Current session [${this.curChatId}] awaiting response, ignoring switch...`); + alert("ERRR:MCUI\nWait for response to pending query, before switching"); + return; + } + this.handle_session_switch(target.id); + el_children_config_class(elDiv, target.id, "session-selected", ""); + }); + elDiv.appendChild(btn); + return btn; + } + /** * Switch ui to the specified chatId and set curChatId to same. * @param {string} chatId