Fix workbench dark theme and enlarge dialogs

This commit is contained in:
Miayui
2026-09-18 09:11:59 +08:00
parent c812a1a595
commit e920a92505
18 changed files with 328 additions and 49 deletions
+20 -1
View File
@@ -3,6 +3,17 @@
const state = { open: false, returnFocus: null, backgroundInert: [] };
function currentWorkbenchTheme() {
return document.documentElement.dataset.glassTheme === "light" ? "light" : "dark";
}
function syncWorkbenchTheme(frame) {
frame?.contentWindow?.postMessage({
type: "cognitive-agent:theme-change",
theme: currentWorkbenchTheme(),
}, window.location.origin);
}
function setBackgroundInert(inert) {
const layer = document.querySelector("#firmwareWorkbenchLayer");
if (!layer) return;
@@ -80,11 +91,19 @@
</div>
<button id="firmwareWorkbenchClose" type="button" aria-label="关闭座椅固件开发工作台" title="关闭"><i data-lucide="x"></i></button>
</header>
<iframe class="firmware-workbench-frame" src="/firmware-workbench.html?embedded=1" title="座椅固件开发工作台"></iframe>
<iframe class="firmware-workbench-frame" title="座椅固件开发工作台"></iframe>
</section>`;
dock.append(trigger);
document.body.append(layer);
const frame = document.querySelector(".firmware-workbench-frame", layer);
frame.src = `/firmware-workbench.html?embedded=1&theme=${currentWorkbenchTheme()}`;
frame.addEventListener("load", () => syncWorkbenchTheme(frame));
window.addEventListener("cognitive-agent:theme-change", () => syncWorkbenchTheme(frame));
new MutationObserver(() => syncWorkbenchTheme(frame)).observe(document.documentElement, {
attributes: true,
attributeFilter: ["data-glass-theme"],
});
trigger.addEventListener("click", () => setOpen(!state.open));
document.querySelector("#firmwareWorkbenchClose", layer).addEventListener("click", () => setOpen(false));
layer.addEventListener("click", (event) => { if (event.target === layer) setOpen(false); });