From f23a0488854a58bea8c0cb2ddc8e1c424a6828f4 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sun, 16 Aug 2026 00:38:49 -0700 Subject: Hats: put your money where your head is — supporter hats perch above the avatar everywhere it appears, from 21-sat beanie to 2.1M-sat top hat; the crown stays on the founder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz --- src/recipient-search.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src/recipient-search.js') diff --git a/src/recipient-search.js b/src/recipient-search.js index 5b7758b..bd1767b 100644 --- a/src/recipient-search.js +++ b/src/recipient-search.js @@ -220,15 +220,17 @@ export function makeSearcher(onUpdate) { // Candidate rows (avatar + name + address/npub), styled with the chat list // classes both pages already ship. -export function resultRows(h, rows, onPick) { - return rows.map((r) => - h('div', { class: 'item chat-thread-row', onClick: () => onPick(r) }, - r.picture - // background, not : paints synchronously from cache, so rows - // re-rendered per keystroke don't flash their avatars - ? h('div', { class: 'chat-avatar ava-img', style: `background-image:url(${JSON.stringify(r.picture)})` }) - : fallbackAvatar(h, r.pk, r.name, 'chat-avatar'), +export function resultRows(h, rows, onPick, wrapAvatar) { + return rows.map((r) => { + const ava = r.picture + // background, not : paints synchronously from cache, so rows + // re-rendered per keystroke don't flash their avatars + ? h('div', { class: 'chat-avatar ava-img', style: `background-image:url(${JSON.stringify(r.picture)})` }) + : fallbackAvatar(h, r.pk, r.name, 'chat-avatar'); + return h('div', { class: 'item chat-thread-row', onClick: () => onPick(r) }, + (wrapAvatar && wrapAvatar(r.pk, ava)) || ava, h('div', { class: 'col grow', style: 'min-width:0;gap:1px' }, h('div', { class: 'chat-name' }, r.name || (npubOf(r.pk) || '').slice(0, 12)), - h('div', { class: 'muted small chat-preview' }, r.address || r.nip05 || (npubOf(r.pk) || '').slice(0, 24) + '…')))); + h('div', { class: 'muted small chat-preview' }, r.address || r.nip05 || (npubOf(r.pk) || '').slice(0, 24) + '…'))); + }); } -- cgit v1.2.3