fix(web-console): align status cards and command history

This commit is contained in:
Miayui
2026-09-16 15:05:36 +08:00
parent 97d10c5fcd
commit d74d039044
11 changed files with 271 additions and 23 deletions
+22
View File
@@ -723,6 +723,19 @@
return "binary";
}
function focusLatestDispatchedControls(container) {
requestAnimationFrame(() => {
const transcript = $("#assistantMessages");
const activeCard = container?.matches?.(".assistant-dispatched-controls")
? container
: $(".assistant-dispatched-controls", container);
if (!transcript || !activeCard) return;
transcript.querySelectorAll(".assistant-dispatched-controls").forEach((card) => {
card.open = card === activeCard;
});
});
}
function appendDispatchedControls(message, result = {}) {
if (!message?.body || !result || typeof result !== "object") return;
const previous = message.dispatchedControlResult || {};
@@ -767,6 +780,7 @@
if (vueRenderer(host, viewCommands)) {
host.dataset.commandSignature = signature;
message.article?.classList.add("assistant-message-with-dispatched-controls");
focusLatestDispatchedControls(host);
followLatest(true);
return;
}
@@ -778,6 +792,13 @@
card = document.createElement("details");
card.className = "assistant-dispatched-controls";
card.open = true;
card.addEventListener("toggle", () => {
if (!card.open) return;
const transcript = $("#assistantMessages");
transcript?.querySelectorAll(".assistant-dispatched-controls[open]").forEach((otherCard) => {
if (otherCard !== card) otherCard.open = false;
});
});
const summary = document.createElement("summary");
const headingIcon = document.createElement("span");
headingIcon.className = "assistant-dispatched-controls-heading-icon";
@@ -829,6 +850,7 @@
list.append(row);
});
message.article?.classList.add("assistant-message-with-dispatched-controls");
focusLatestDispatchedControls(card);
window.lucide?.createIcons({ attrs: { "aria-hidden": "true" } });
followLatest(true);
}