From 508829c38ba360dca8741fba312129e44f756f50 Mon Sep 17 00:00:00 2001 From: Jure <44338+hoornet@users.noreply.github.com> Date: Thu, 9 Apr 2026 15:36:55 +0200 Subject: [PATCH] =?UTF-8?q?Polish=20pass=202=20=E2=80=94=20avatar=20hover,?= =?UTF-8?q?=20reply=20buttons,=20ellipses,=20a11y?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Unify NoteCard avatar hover between image and fallback variants - Add aria-labels to compose toolbar buttons (emoji, attach, poll) - Fix ThreadView inline reply button sizing to match compose post button - Replace remaining '...' with unicode ellipsis across podcasts, v4v, thread, and ancestor chain components --- src/components/feed/ComposeBox.tsx | 3 +++ src/components/feed/NoteCard.tsx | 2 +- src/components/podcast/PodcastsView.tsx | 2 +- src/components/podcast/V4VIndicator.tsx | 2 +- src/components/poll/PollWidget.tsx | 2 +- src/components/thread/AncestorChain.tsx | 2 +- src/components/thread/ThreadNode.tsx | 2 +- src/components/thread/ThreadView.tsx | 6 +++--- src/components/v4v/V4VHistory.tsx | 2 +- 9 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/components/feed/ComposeBox.tsx b/src/components/feed/ComposeBox.tsx index e280660..0597116 100644 --- a/src/components/feed/ComposeBox.tsx +++ b/src/components/feed/ComposeBox.tsx @@ -306,6 +306,7 @@ export function ComposeBox({ onPublished, onNoteInjected }: { onPublished?: () = diff --git a/src/components/poll/PollWidget.tsx b/src/components/poll/PollWidget.tsx index 2ceefed..8055408 100644 --- a/src/components/poll/PollWidget.tsx +++ b/src/components/poll/PollWidget.tsx @@ -106,7 +106,7 @@ export const PollWidget = memo(function PollWidget({ event }: { event: NDKEvent {pollData ? ( {total} {total === 1 ? "vote" : "votes"} ) : ( - loading votes... + loading votes… )} {isExpired && · Poll ended} {closedAt && !isExpired && ( diff --git a/src/components/thread/AncestorChain.tsx b/src/components/thread/AncestorChain.tsx index a81ba61..6e15dd3 100644 --- a/src/components/thread/AncestorChain.tsx +++ b/src/components/thread/AncestorChain.tsx @@ -11,7 +11,7 @@ function AncestorCard({ event }: { event: NDKEvent }) { const { openThread } = useUIStore(); const truncated = event.content.length > 120 - ? event.content.slice(0, 120) + "..." + ? event.content.slice(0, 120) + "…" : event.content; return ( diff --git a/src/components/thread/ThreadNode.tsx b/src/components/thread/ThreadNode.tsx index 2ba2a03..4103aea 100644 --- a/src/components/thread/ThreadNode.tsx +++ b/src/components/thread/ThreadNode.tsx @@ -64,7 +64,7 @@ function InlineThreadReply({ replyTo, rootEvent, onPublished }: { value={text} onChange={(e) => { setText(e.target.value); autoResize(e); }} onKeyDown={handleKeyDown} - placeholder="Write a reply..." + placeholder="Write a reply…" rows={2} className="w-full bg-transparent text-text text-[12px] placeholder:text-text-dim resize-none focus:outline-none" autoFocus diff --git a/src/components/thread/ThreadView.tsx b/src/components/thread/ThreadView.tsx index eec5a99..a36ddac 100644 --- a/src/components/thread/ThreadView.tsx +++ b/src/components/thread/ThreadView.tsx @@ -213,7 +213,7 @@ export function ThreadView() { value={replyText} onChange={(e) => { setReplyText(e.target.value); autoResize(e); }} onKeyDown={handleKeyDown} - placeholder="Write a reply..." + placeholder="Write a reply…" rows={2} className="w-full bg-transparent text-text text-[12px] placeholder:text-text-dim resize-none focus:outline-none leading-relaxed" autoFocus @@ -248,9 +248,9 @@ export function ThreadView() { diff --git a/src/components/v4v/V4VHistory.tsx b/src/components/v4v/V4VHistory.tsx index 21ed00e..f7af5a2 100644 --- a/src/components/v4v/V4VHistory.tsx +++ b/src/components/v4v/V4VHistory.tsx @@ -41,7 +41,7 @@ function HistoryRow({ entry }: { entry: V4VHistoryEntry }) {
Recipients:
{entry.recipients.map((r, i) => (
- {r.name || r.address.slice(0, 16) + "..."} + {r.name || r.address.slice(0, 16) + "…"} {r.sats} sats
))}