From c7ba5d5f0c8e80da1133fc6f53cc37bfedc281f2 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Mon, 3 Aug 2026 09:22:55 -0700 Subject: Pay screens: bigger recipient chip, no loading-screen flashes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Resolving a recipient (ark advert → BIP-353 → lightning) no longer takes over the screen twice on the way: both steps keep the send form in place and report progress as one inline line, so picking someone goes straight to something actionable. The recipient chip on the zap card gets a large variant — a 30px avatar and full-size name, since it's who the money is going to. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi --- src/features/ark.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/features/ark.js') diff --git a/src/features/ark.js b/src/features/ark.js index 8a485e8..7fda8ed 100644 --- a/src/features/ark.js +++ b/src/features/ark.js @@ -967,6 +967,8 @@ export function arkFeature(ctx) { } function arkZapView() { + // the npub lookup is a background step — no takeover card for it + if (ui.arkZap && ui.arkZap.status === 'lookup') return null; if (ui.arkZapped) { return h('div', { class: 'card col', @@ -982,7 +984,7 @@ export function arkFeature(ctx) { if (!z) return null; return h('div', { class: 'card col', style: 'gap:12px' }, h('h3', {}, '⚡ ' + t('arkZapTitle')), - ctx.hook('profileChip', z.pk) || h('div', { class: 'small muted', style: 'word-break:break-all' }, z.npub), + ctx.hook('profileChip', z.pk, 'lg') || h('div', { class: 'small muted', style: 'word-break:break-all' }, z.npub), z.status === 'lookup' ? h('div', { class: 'row gap6', style: 'align-items:center' }, h('span', { class: 'spinner sm' }), h('span', { class: 'small muted' }, t('arkZapLookup'))) : null, z.status === 'noark' ? h('div', { class: 'notice err' }, t('arkZapNoArk')) : null, // No Ark address, but they may still take a Lightning zap — hand off to @@ -1634,6 +1636,7 @@ export function arkFeature(ctx) { // swaps feature): the ASP pays invoices natively over ark. canLnPay() { return arkAvailable() && !wallet.watchOnly && !!(ark && ark.info); }, lnSpendableSat() { const b = arkBalance(); return b ? b.spendableSat : 0; }, + resolvingNote() { return ui.arkZap && ui.arkZap.status === 'lookup' ? t('arkZapLookup') : null; }, startLnPay(invoice, meta) { return startArkLnPay(invoice, meta); }, // ---- headless seam for the NWC wallet service ---- arkPayInvoice(invoice, opts) { return payInvoiceHeadless(invoice, opts); }, -- cgit v1.2.3