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:
parent
14083d157f
commit
6c71277513
1 changed files with 25 additions and 15 deletions
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue