Compare commits

...
Author SHA1 Message Date
openclaw-bot 18fb48cd26 fix(#1471 followup): re-inject More-sheet mirrors on click
Polish round dropped the click-listener that re-attempted addMissingMoreSheetItems
when bottom-nav rebuilt or showed the sheet. Result: if operator didn't tap More
within 5s of page load, Favorites/Search/Customize mirrors never appeared.

Add back the catch-all click delegate (same pattern as the original) so injection
happens on first More-click regardless of timing.
2026-05-29 03:59:19 +00:00
openclaw-bot 30187da3db fix(#1471 followup): hide duplicate in-page Filters button on mobile
Navbar mirror was injected per #1467/#1471 but the in-page
.filter-toggle-btn was kept (display:flex) to satisfy E2E #534. Result:
two Filters buttons render on mobile, both clickable, confusing operator.

Switch the in-page button to visibility:hidden + 0×0 so it stays in the
DOM (page.$('.filter-toggle-btn').click() still works for #534) but
takes no visual space and isn't a competing affordance.

Reported by operator on prod (v3.8.2). Frontend-only, hot-deployable.
2026-05-29 03:49:23 +00:00
2 changed files with 46 additions and 0 deletions
+16
View File
@@ -75,6 +75,22 @@
window.addEventListener('hashchange', syncForRoute);
window.addEventListener('resize', syncForRoute);
/* #1471 followup: also re-attempt sheet injection on More-button click,
* in case the page sat idle past the 5s retry window. The bottom-nav.js
* sheet is built lazily on first More-click, and addMissingMoreSheetItems
* may have given up before then. Catch-all delegate listener handles this
* AND survives any bottom-nav.js rebuild path. */
document.addEventListener('click', function (e) {
var t = e.target;
if (!t) return;
// Trigger whether operator clicked More button or any descendant
var moreBtn = t.closest && t.closest('[data-bottom-nav-more], button');
if (moreBtn && /more/i.test(moreBtn.textContent || '')) {
setTimeout(addMissingMoreSheetItems, 50);
setTimeout(addMissingMoreSheetItems, 250); // belt-and-suspenders for slow builds
}
}, true);
/* #1461 #7: on mobile, packets-list group-header expand is a UX dead-end
* (we hid the chevron so there's no way to collapse). Intercept those
* clicks and force them to the single-select code path instead — the
+30
View File
@@ -907,6 +907,36 @@ img.brand-logo {
* #534 E2E test (and for any user whose navbar mirror failed to inject). */
#pktLeft .page-header { display: none !important; }
#pktLeft .pkt-filter-expr { display: none !important; }
/* #1461 followup: the navbar mirror is always present on mobile.
* Hide the in-page Filters button visually so we don't double-render the
* affordance. Use visibility:hidden (not display:none) so it stays in
* the DOM + clickable for the #534 E2E. Pull it to zero size so it
* doesn't reserve layout space. */
.filter-bar > .filter-toggle-btn {
visibility: hidden !important;
position: absolute;
width: 0;
height: 0;
padding: 0;
margin: 0;
overflow: hidden;
pointer-events: auto;
}
/* Bar itself has no chrome unless expanded */
.filter-bar {
background: transparent !important;
border: none !important;
padding: 0 !important;
margin: 0 !important;
min-height: 0 !important;
}
.filter-bar.filters-expanded {
padding: 6px 8px !important;
margin-bottom: 4px !important;
background: var(--surface-2, rgba(0,0,0,0.05)) !important;
border: 1px solid var(--border, #333) !important;
border-radius: 6px !important;
}
/* Navbar-mirror buttons injected by mobile-page-actions.js. Visual tokens
* (border, colors) live here so the customizer can theme them and so we