diff options
| author | Adam Soltys <[email protected]> | 2026-10-19 07:44:48 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-19 07:44:48 -0700 |
| commit | a1f9261f4d3fdfa099fa5508f64d05e28423a909 (patch) | |
| tree | 53c3ee5e65834b5f74604d6f16258aa8c54307e6 /src/features/messages.js | |
| parent | c39c565630f3a09b76da7a3f0a4d7a37945e0325 (diff) | |
| download | coinosv3-a1f9261f4d3fdfa099fa5508f64d05e28423a909.tar.gz coinosv3-a1f9261f4d3fdfa099fa5508f64d05e28423a909.zip | |
Notifications: tapping a zap with no post behind it does something. A zap on your profile opens the zapper's profile, and a zap on a stream opens the stream. The tap used to do nothing, because the row only knew how to open a post.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_013ZDf1cyCQLkfjftYhymZAg
Diffstat (limited to 'src/features/messages.js')
| -rw-r--r-- | src/features/messages.js | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/features/messages.js b/src/features/messages.js index 13e328a..6692ddc 100644 --- a/src/features/messages.js +++ b/src/features/messages.js @@ -17077,7 +17077,9 @@ export function messagesFeature(ctx) { if (ZAP_KINDS.includes(ev.kind)) { const actor = zapperOf(ev), sats = receiptSats(ev); if (!actor || my.includes(actor) || !sats) return null; - return { id: ev.id, what: 'zap', actor, target: lastE, hint, sats, text: zapText(ev), ts: ev.created_at }; + // a zap on a stream names it by address (a 30311), not by an e tag + const stream = !lastE ? ((ev.tags || []).find((x) => x[0] === 'a' && String(x[1] || '').startsWith(LIVE_KIND + ':')) || [])[1] || null : null; + return { id: ev.id, what: 'zap', actor, target: lastE, stream, hint, sats, text: zapText(ev), ts: ev.created_at }; } if (my.includes(ev.pubkey)) return null; if (ev.kind === 7) { @@ -17266,6 +17268,10 @@ export function messagesFeature(ctx) { if (target) openNoteThread(target); // a note we couldn't find is asked for again on tap, hints and all else if (x.target) openNoteRef({ id: x.target, relays: x.hint || [] }).catch(() => {}); + // a zap on a stream opens the stream; one on your profile (no post + // at all) opens the zapper's — the tap used to do nothing + else if (x.stream) { const [, pk, ...d] = x.stream.split(':'); stopNotifWatch(); openLiveRef({ pk, d: d.join(':') }).catch(() => {}); } + else { stopNotifWatch(); openProfile(x.actor); } } }; return h('div', { |
