Changeset 42e7616 in Klonkt


Ignore:
Timestamp:
07/26/2026 10:00:36 AM (6 weeks ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
de89079
Parents:
ef1853c
Message:

Fix: load-more toont ineens de Klonkt-header (chrome-swap bij append)

Op Messages (en ook News/Cirkel) verscheen na "Load more" + omhoog scrollen de
volledige Klonkt-header. Oorzaak: renderPage behandelde de load-more-append als
een HTMX-NAVIGATIE en stuurde de HX-Trigger pcmsNav (met bodyClass) + de
out-of-band chrome mee. De append-render geeft geen bodyClass mee, dus die viel
terug op de default 'on-home'; de pcmsNav-listener in shell.ejs stript dan
'on-special' en de OOB-chrome herbouwt de header voor de home-variant → de
verborgen header komt tevoorschijn.

Een load-more voegt alleen rijen toe aan de bestaande pagina; dat is geen
navigatie. renderPage stuurt voor een append (req.query.append === '1') nu enkel
de content, zonder de nav-HX-Trigger en zonder de OOB-chrome. De OOB load-more-
knop zit in de content zelf en blijft dus gewoon werken.

Changed files:
src/middleware/render.js

  • isPartial + append=1 -> alleen content sturen (geen pcmsNav-trigger/OOB-chrome)

remarks: 187 tests groen. Dekt messages, news en cirkel load-more. Bug zit achter
login, dus niet live in een preview te reproduceren; diagnose via de code
bevestigd (pcmsNav-listener shell.ejs + on-special + ontbrekende bodyClass).

-robo
Co-Authored-By: Claude Opus 4.8 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/middleware/render.js

    ref1853c r42e7616  
    210210
    211211    if (isPartial) {
     212      // A "Load more" append (hx-swap=beforeend into a sub-list) is NOT a
     213      // navigation: it only adds rows to the existing page. It must NOT touch
     214      // the site chrome or the body class. Emitting the nav HX-Trigger + OOB
     215      // chrome here (below) rebuilds the header for the DEFAULT bodyClass —
     216      // which, on a 'on-special' page like Messages, swaps in the full Klonkt
     217      // header that the page had hidden. So for an append, send content only.
     218      if (req.query.append === '1') {
     219        return res.send(injectCspNonce(pageContent, res.locals.cspNonce));
     220      }
    212221      // HTMX: just send the content. Set HX-Trigger for body class swap.
    213222      // HTTP-header values are Latin-1 only — a title with an em-dash, smart
Note: See TracChangeset for help on using the changeset viewer.