Changeset 1d76e0e in Klonkt for src/routes/posts.js


Ignore:
Timestamp:
08/08/2026 09:51:53 PM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
bfd9c73
Parents:
df70d8e
git-author:
Robin <roboburr@…> (08/08/2026 09:51:49 PM)
git-committer:
Robin <roboburr@…> (08/08/2026 09:51:53 PM)
Message:

De reply-editor wordt een module (shaer-nh2)

Stond nog als <script src> onderaan partials/reply-editor.ejs -- het patroon dat
shaer-bqr overal weghaalde, maar dit bestand ging niet mee omdat die migratie
over INLINE scripts ging en dit er een met src is.

Bij een volledige laadbeurt ging het goed: injectCspNonce zet er een nonce op.
Bij een htmx-navigatie draagt de partial de nonce van DAT verzoek, terwijl het
document die van zijn eigen laadbeurt heeft. De CSP is strict-dynamic, dus
alleen die laatste telt en het script draaide niet. Gevolg: geen toolbar, geen
media-drop, geen .re-full -- en op mobiel dus geen fullscreen-compose.

De omzetting was mechanisch, want de opzet was al goed: init(form) had al een
__re-vlag PER FORMULIER. Na een htmx-wissel zijn de formulieren nieuw, dus
geen vlag, dus opnieuw opgewaardeerd. Alleen de IIFE, de window-vlag en de
DOMContentLoaded eromheen konden weg; init(form) heet nu initForm om plaats te
maken voor de geexporteerde init().

pageJs erbij op de drie routes die de editor tonen: Berichten, een post met
reacties, en authorize-interaction.

EN DIT IS DE VOORWAARDE VOOR HET SAMENVOEGEN. Robin wil een herbruikbaar
editor-component; een los script kan niet importeren uit mod/lib.js, een module
wel. Dit is dus stap nul van die samenvoeging en niet alleen een bugfix.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/posts.js

    rdf70d8e r1d76e0e  
    802802  }
    803803  renderPage(req, res, 'pages/authorize-interaction', {
    804     pageJs: 'authorize-interaction',
     804    pageJs: 'authorize-interaction reply-editor',
    805805    pageTitleKey: 'fedi.remote_interact', // i18n: was hardcoded Dutch on non-NL sites
    806806    bodyClass: 'on-special',
     
    949949    : []).filter((o) => o['shaer:ward'] === gMe && o['shaer:needsMyAccept']);
    950950  renderPage(req, res, 'pages/messages', {
    951     pageTitleKey: 'msg.title', bodyClass: 'on-special', pageJs: 'messages', items, seenAt,
     951    pageTitleKey: 'msg.title', bodyClass: 'on-special', pageJs: 'messages reply-editor', items, seenAt,
    952952    hasMore, nextOffset: offset + FEED_PAGE, moreBase, guardianOffers,
    953953    success: req.query.success || null, error: req.query.error || null,
     
    15301530
    15311531  renderPage(req, res, 'pages/post', {
    1532     pageJs: 'post',
     1532    pageJs: 'post reply-editor',
    15331533    post,
    15341534    poll: ActivityPubService.ownPollView(post),
Note: See TracChangeset for help on using the changeset viewer.