Fix workbench dark theme and enlarge dialogs
This commit is contained in:
@@ -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); });
|
||||
|
||||
Reference in New Issue
Block a user