Changeset e579a98 in Klonkt


Ignore:
Timestamp:
06/21/2026 05:04:21 PM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
097da22
Parents:
2520dcc
Message:

fix(zoeken): bottom-tab search button stopped working after htmx navigation

The button captured #search-overlay once, but that overlay lives in the chrome
which is OOB-replaced on every htmx nav → reference went stale → button did
nothing. Now via delegation + looking up the overlay fresh on each click (as the
desktop button already did). Guard against double-wiring.

Co-Authored-By: Claude <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/views/partials/bottom-tab.ejs

    r2520dcc re579a98  
    321321
    322322<script>
    323 // Wire the bottom-tab search button into the existing #search-overlay
     323// Bottom-tab zoekknop → opent #search-overlay. Via event-delegatie + de overlay
     324// ELKE klik opnieuw opzoeken: de overlay zit in de chrome die bij htmx-navigatie
     325// OOB vervangen wordt, dus een één-keer-opgevangen referentie verschaalt
     326// (knop deed daarna niets). Guard tegen dubbel-wiren.
    324327(function() {
    325   const btn = document.getElementById('bottom-tab-search-toggle');
    326   const overlay = document.getElementById('search-overlay');
    327   if (btn && overlay) {
    328     btn.addEventListener('click', function() {
    329       overlay.hidden = false;
    330       const inp = overlay.querySelector('input');
    331       if (inp) inp.focus();
    332     });
    333   }
     328  if (window.__btSearchWired) return;
     329  window.__btSearchWired = true;
     330  document.addEventListener('click', function(e) {
     331    if (!e.target.closest || !e.target.closest('#bottom-tab-search-toggle')) return;
     332    var o = document.getElementById('search-overlay');
     333    if (o) { o.hidden = false; var i = o.querySelector('input'); if (i) i.focus(); }
     334  });
    334335})();
    335336</script>
Note: See TracChangeset for help on using the changeset viewer.