feat(theseus/sidebar): remove redundant in-panel extension picker strip
Every add-on panel was carrying a 32-px tab bar at the top listing every registered extension. That existed before the toolbar extension dock landed — now that the dock (per-extension buttons + puzzle dropdown at narrow widths) is the canonical switcher, doubling that inside the sidebar just wasted vertical space and made narrow panels feel cramped. Drops installPickerStrip() from sidebar-preload.js and the invocation from the DOMContentLoaded handler. The body-padding style that made room for the strip goes with it, so panels reclaim their top 33px. Resize grip on the left edge stays — unrelated feature. No panel HTML depends on the strip's padding — the wallets, notepad, relay, siawallet, and screenshot addon all start their own body flow from 0. Nothing else to change.
This commit is contained in:
parent
a18c1b243b
commit
8ae4ecea81
1 changed files with 5 additions and 47 deletions
|
|
@ -20,52 +20,11 @@ contextBridge.exposeInMainWorld("silentmode", {
|
|||
on: (msg, cb) => ipcRenderer.on("addon-event", (_e, name, payload) => { if (name === msg) cb(payload); }),
|
||||
});
|
||||
|
||||
// -- Panel picker strip -----------------------------------------------------
|
||||
// Injected at the top of every panel document so the user can switch between
|
||||
// registered extension panels without a settings round-trip. Only appears
|
||||
// when 2+ panels exist. Main pushes the panel list here via IPC on the
|
||||
// initial sidebar-state event.
|
||||
async function installPickerStrip() {
|
||||
let state;
|
||||
try { state = await ipcRenderer.invoke("sidebar-state"); } catch { return; }
|
||||
const panels = (state && state.panels) || [];
|
||||
if (panels.length < 2) return;
|
||||
const strip = document.createElement("div");
|
||||
strip.setAttribute("aria-label", "Extension panels");
|
||||
strip.style.cssText = [
|
||||
"position:fixed", "top:0", "left:5px", "right:0", "height:32px",
|
||||
"display:flex", "align-items:stretch", "gap:1px",
|
||||
"background:rgba(11,14,20,.85)", "backdrop-filter:blur(8px)",
|
||||
"border-bottom:1px solid rgba(255,255,255,.10)",
|
||||
"z-index:2147483646", "user-select:none",
|
||||
"font:12px/1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif",
|
||||
].join(";");
|
||||
const active = state.active;
|
||||
for (const p of panels) {
|
||||
const tab = document.createElement("button");
|
||||
tab.type = "button";
|
||||
const isActive = p.panelId === active;
|
||||
tab.style.cssText = [
|
||||
"flex:1", "min-width:0", "padding:0 10px", "border:0",
|
||||
"background:" + (isActive ? "rgba(214,255,61,.10)" : "transparent"),
|
||||
"color:" + (isActive ? "#d6ff3d" : "#8b98a9"),
|
||||
"cursor:pointer",
|
||||
"display:flex", "align-items:center", "gap:6px", "justify-content:center",
|
||||
"overflow:hidden", "text-overflow:ellipsis", "white-space:nowrap",
|
||||
"font:inherit",
|
||||
].join(";");
|
||||
tab.innerHTML = '<span>' + (p.icon || "🧩") + '</span><span>' + p.title.replace(/</g, "<") + '</span>';
|
||||
tab.addEventListener("click", () => ipcRenderer.invoke("sidebar-open", p.panelId));
|
||||
strip.appendChild(tab);
|
||||
}
|
||||
document.body.appendChild(strip);
|
||||
// Push the panel body down so the 32-px strip doesn't overlap the content.
|
||||
// box-sizing:border-box keeps 100%-tall panels from overflowing when we
|
||||
// add the padding.
|
||||
const style = document.createElement("style");
|
||||
style.textContent = "html,body{box-sizing:border-box}body{padding-top:33px!important}";
|
||||
document.head.appendChild(style);
|
||||
}
|
||||
// Panel picker strip was here — a 32-px tab bar injected at the top of
|
||||
// every panel to switch between registered extensions. Removed: the
|
||||
// toolbar extension dock (per-extension buttons + puzzle dropdown at
|
||||
// narrow widths) is the canonical switcher now, and doubling that inside
|
||||
// the sidebar wasted vertical space and made narrow panels feel cramped.
|
||||
|
||||
// Sidebar resize grip. Injected into every panel automatically so panel
|
||||
// authors don't have to reinvent it. A thin strip along the LEFT edge
|
||||
|
|
@ -73,7 +32,6 @@ async function installPickerStrip() {
|
|||
// and streams drag deltas to main until mouseup. Main clamps the width
|
||||
// to [200, 800] and persists it in settings.sidebarWidth.
|
||||
window.addEventListener("DOMContentLoaded", () => {
|
||||
installPickerStrip();
|
||||
const grip = document.createElement("div");
|
||||
grip.setAttribute("aria-label", "Resize sidebar");
|
||||
grip.style.cssText = [
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue