%# Wat er onder de zoekbalk staat. EEN render voor beide ingangen: het live resultatenvak (via /search/results) en de pagina /search?q=... zelf. Zo zien ze er per constructie hetzelfde uit; twee renders lopen gegarandeerd uit de pas. Verwacht: query, results (posts), tracks, events, pages, queryError, remoteUri, remote, remoteKind, mayLookup, remoteReacted, siteTitle, siteUrlBase, formatDate, t. GEEN SCRIPT hierin: het live vak zet dit via innerHTML neer, en daar draait niets. Gedrag (afspelen, waarderen, htmx-links) luistert op document. %> <% const _base = (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : ''; const _results = (typeof results !== 'undefined' && results) ? results : []; const _tracks = (typeof tracks !== 'undefined' && tracks) ? tracks : []; const _events = (typeof events !== 'undefined' && events) ? events : []; const _pages = (typeof pages !== 'undefined' && pages) ? pages : []; const _remote = (typeof remoteUri !== 'undefined' && remoteUri) ? remoteUri : ''; // Alles via locals: een veld dat een aanroeper vergeet mag de render niet // laten omvallen (een kale verwijzing naar iets ongedefinieerds gooit). const _queryError = !!locals.queryError; const _mayLookup = !!locals.mayLookup; const _found = locals.remote || null; const _kind = locals.remoteKind || null; const _reacted = locals.remoteReacted || { liked: false, boosted: false }; const _siteTitle = locals.siteTitle || ''; const _inPost = t('search.in_post'); const _any = _results.length || _tracks.length || _events.length || _pages.length; %> <% if (locals.query) { %>
<%= t('search.fedi_signin') %>
<% } else if (_found && _kind === 'note') { %> <%- include('./remote-object', { target: _found, uri: _remote, reacted: _reacted, siteTitle: _siteTitle, compact: true }) %> <% } else if (_found && _kind === 'actor') { %> <%- include('./remote-actor', { actor: _found, siteTitle: _siteTitle, compact: true }) %> <% } else { %><%= t('fedi.remote_notfound') %>
<% } %> <% if (_found) { %><%- include('./fedi-interact-styles') %><% } %><%= t('search.error') %>
<% } %> <% if (_tracks.length) { %><%= t('search.empty') %>
<% } %>