fix(#994,#996): replace undefined CSS vars; guard overflow rebuild when open
dashboard.css used var(--surface0/1/2) and var(--text) throughout the agent context menu, tabbar overflow dropdown, and logs toolbar — none of which are declared in base.css (the palette only defines --bg-elev, --border, --purple-dim, --fg etc). This caused all three dropdowns to render with a transparent background (issue #996). Replacements: --surface0 → --bg-elev (dropdown background) --surface1 → --border (hover / active state) --surface2 → --purple-dim (border / separator) --text → --fg (label colour) Also addresses two argus yellows from the PR #997 review: - Skip updateTabbarOverflow() early when the dropdown is open; avoids DOM flicker from the 1s badge-update tick while the menu is visible. - Fall back to 32px when overflowBtn.offsetWidth === 0 (hidden on the first render) so the initial width measurement is not off.
This commit is contained in:
parent
994f53d06f
commit
e045a29508
2 changed files with 23 additions and 17 deletions
|
|
@ -3438,6 +3438,9 @@ window.marked = marked;
|
|||
function updateTabbarOverflow() {
|
||||
const tabbar = $('tabbar');
|
||||
if (!tabbar || !overflowBtn || !overflowDrop) return;
|
||||
// Skip dropdown rebuild while it is open — the 1s badge tick would
|
||||
// replace DOM nodes and cause a flicker mid-interaction.
|
||||
if (overflowOpen) return;
|
||||
|
||||
// Collect all tabs that are not JS-hidden (P33RS/M4TR1X may be hidden
|
||||
// by feature-gating) and not already removed from the DOM.
|
||||
|
|
@ -3452,7 +3455,10 @@ window.marked = marked;
|
|||
|
||||
// Step 2: measure available width (bar width minus overflow-btn width).
|
||||
// We must read layout AFTER restoring all dynamic tabs.
|
||||
const availWidth = tabbar.clientWidth - overflowBtn.offsetWidth - 8;
|
||||
// overflowBtn may be hidden (offsetWidth=0) on the very first call; fall
|
||||
// back to a 32px estimate so the first-pass measurement isn't off.
|
||||
const btnW = overflowBtn.offsetWidth || 32;
|
||||
const availWidth = tabbar.clientWidth - btnW - 8;
|
||||
|
||||
// Step 3: walk dynamic tabs left-to-right, accumulating widths.
|
||||
// Any that go over the available width get overflowed.
|
||||
|
|
|
|||
Loading…
Reference in a new issue