Changeset e91849c in Klonkt for src/views/pages


Ignore:
Timestamp:
06/25/2026 10:21:29 PM (3 months ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
67fe576
Parents:
2902320
Message:

ux(fedi): owner replies to a fediverse comment directly (no 'your server' detour)

On your own site, the reply button under an inbound fediverse comment showed
the visitor flow (asks for 'your server' and bounces to authorize_interaction).
For the site owner that is pointless — you ARE the server. Owners now get an
inline reply box that posts straight to /posts/:slug/fedi-reply (deliverReply as
the site); visitors keep the remote-interaction popover. Exposes the interaction
id on inbound nodes + threads postSlug through fedi-node.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/views/pages/post.ejs

    r2902320 re91849c  
    9090        <ol class="comments-list">
    9191          <% _fedi.thread.forEach(function(n){ %>
    92             <li class="comment"><%- include('../partials/fedi-node', { n: n, t: t, canManageSite: (typeof canManageSite !== 'undefined' ? canManageSite : false), _base: _base, siteAvatar: (typeof siteAvatar !== 'undefined' ? siteAvatar : null), formatDateTime: formatDateTime }) %></li>
     92            <li class="comment"><%- include('../partials/fedi-node', { n: n, t: t, canManageSite: (typeof canManageSite !== 'undefined' ? canManageSite : false), _base: _base, siteAvatar: (typeof siteAvatar !== 'undefined' ? siteAvatar : null), formatDateTime: formatDateTime, postSlug: post.slug }) %></li>
    9393          <% }); %>
    9494        </ol>
     
    360360   otherwise override the [hidden] attribute → form was always open. */
    361361.comment-reply-form[hidden] { display: none; }
     362.fedi-owner-reply summary { list-style: none; cursor: pointer; }
     363.fedi-owner-reply summary::-webkit-details-marker { display: none; }
     364.fedi-owner-reply[open] summary { margin-bottom: .45rem; }
    362365/* DELETE button is inside a <form>; display:contents makes it a direct flex-sibling
    363366   of REPLY → pixel-perfect alignment + equal gap. */
Note: See TracChangeset for help on using the changeset viewer.