diff options
| author | Adam Soltys <[email protected]> | 2026-09-05 00:17:57 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-09-05 00:17:57 -0700 |
| commit | aa67ba1c15ce761666342e16a3194d3b5b0a4167 (patch) | |
| tree | 32325bc7cb66de75e2933c13b8061a9f7932a0cd /src/features | |
| parent | 6d0baaebb09602305bf1cad3110d59323cce3c1a (diff) | |
| download | coinosv3-aa67ba1c15ce761666342e16a3194d3b5b0a4167.tar.gz coinosv3-aa67ba1c15ce761666342e16a3194d3b5b0a4167.zip | |
Chat goes full-bleed on phones like the notes feed — the home list, community rooms and DM threads (now sharing a chat-page class) drop their card walls and run edge to edge under 520px — and the type steps up a notch: bubbles 14→15px, names 13→14px, timestamps 11→12px. Plus: a fixed-price LNURL (minSendable == maxSendable — bolt-card top-ups, paywalls, static charges) no longer prompts for an amount — resolve() fills it and locks the field via the same fixedSat machinery fixed-amount BOLT 12 offers already use (disabled input, adjusted hints, confirm bypass)
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MGzU12QrAA4G6BYGzGVdXz
Diffstat (limited to 'src/features')
| -rw-r--r-- | src/features/messages.js | 6 | ||||
| -rw-r--r-- | src/features/zaps.js | 7 |
2 files changed, 10 insertions, 3 deletions
diff --git a/src/features/messages.js b/src/features/messages.js index 80230d6..a370097 100644 --- a/src/features/messages.js +++ b/src/features/messages.js @@ -2877,7 +2877,7 @@ export function messagesFeature(ctx) { memberCount ? t('msgMembers', { n: memberCount }) : t('msgEncrypted')))); }))); - return h('div', { class: 'card col', style: 'gap:10px' }, ...kids); + return h('div', { class: 'card col chat-page', style: 'gap:10px' }, ...kids); } function linkInviteCard() { @@ -2993,7 +2993,7 @@ export function messagesFeature(ctx) { keepBeating(); if (ch) ping(room, ch.id, PRESENCE); - return h('div', { class: 'card col chat-card' }, + return h('div', { class: 'card col chat-card chat-page' }, h('div', { class: 'row between chat-head' }, h('div', { class: 'row gap6', style: 'align-items:center;min-width:0' }, backBtn(() => { ui.msgView = 'home'; ui.msgReplyTo = null; ui.msgSheet = null; render(); }), @@ -3200,7 +3200,7 @@ export function messagesFeature(ctx) { h('span', { class: 'small muted chat-quote-text' }, String(m.rumor.content || '').replace(/\s+/g, ' ').slice(0, 90))), h('button', { class: 'chat-del', style: 'position:static;display:flex;flex-shrink:0', onClick: () => { ui.msgReplyTo = null; render(); } }, '×')); }; - return h('div', { class: 'card col chat-card' }, + return h('div', { class: 'card col chat-card chat-page' }, h('div', { class: 'row chat-head gap6', style: 'align-items:center' }, backBtn(() => { ui.msgView = 'home'; ui.msgReplyTo = null; ui.msgSheet = null; render(); }), avatar(peer), diff --git a/src/features/zaps.js b/src/features/zaps.js index 03b80e1..7148df1 100644 --- a/src/features/zaps.js +++ b/src/features/zaps.js @@ -121,6 +121,13 @@ export function zapsFeature(ctx) { } const params = await fetchPayParams(target.url); if (ui.zap !== z) return; // user navigated away + // A fixed-price LNURL (min == max — a bolt-card top-up, a paywall, a + // static charge) has no amount to ask for: fill it and lock the field, + // exactly like a fixed-amount BOLT 12 offer. + if (params.minSendable === params.maxSendable && params.minSendable >= 1000) { + params.fixedSat = Math.ceil(params.minSendable / 1000); + z.amount = getUnit() === 'sats' ? String(params.fixedSat) : (params.fixedSat / 1e8).toFixed(8); + } z.params = params; z.status = 'ready'; render(); |
