SimpleChat:MCUI: CreateSessionBtn helper, use wrt NewChat

Also fix a oversight wrt using stale data wrt the list of chat
sessions.
This commit is contained in:
HanishKVC 2024-05-21 20:19:25 +05:30
parent 14083d157f
commit 6c71277513

View file

@ -383,30 +383,40 @@ class MultiChatUI {
elDiv.replaceChildren(); elDiv.replaceChildren();
let chatIds = Object.keys(this.simpleChats); let chatIds = Object.keys(this.simpleChats);
for(let cid of chatIds) { for(let cid of chatIds) {
let btn = el_create_button(cid, (ev)=>{ let btn = this.create_session_btn(elDiv, cid);
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", "");
});
if (cid == this.curChatId) { if (cid == this.curChatId) {
btn.className = "session-selected"; btn.className = "session-selected";
} }
elDiv.appendChild(btn);
} }
let btnNew = el_create_button("NeW cHaT", (ev)=> { let btnNew = el_create_button("NeW cHaT", (ev)=> {
let chatId = `Chat${chatIds.length}`; let chatId = `Chat${Object.keys(this.simpleChats).length}`;
let chatName = prompt("SimpleChat:MCUI:\nEnter id for new chat session", chatId); let chatIdGot = prompt("SimpleChat:MCUI:\nEnter id for new chat session", chatId);
this.new_chat_session(chatId, true); 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); 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. * Switch ui to the specified chatId and set curChatId to same.
* @param {string} chatId * @param {string} chatId