aboutsummaryrefslogtreecommitdiffstats
path: root/src/ark/manager.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-09-19 22:28:36 -0700
committerAdam Soltys <[email protected]>2026-09-19 22:28:36 -0700
commit1b142c92ce869a6ebe97825931ef3553255ba58e (patch)
tree4a16e864ad7a827678c5bab888b8eb1764eb4657 /src/ark/manager.js
parent74152d4ae33e1ea065769d261c615885c387590a (diff)
downloadcoinosv3-1b142c92ce869a6ebe97825931ef3553255ba58e.tar.gz
coinosv3-1b142c92ce869a6ebe97825931ef3553255ba58e.zip
Zaps: tap again while one flies, hold the bolt to change the amount.
A pending zap no longer refuses the next tap: the optimistic tally keeps one entry per zap and matches each report and receipt to the oldest it can describe, so two default-amount zaps stack, settle and hand over to their receipts one at a time. Instant post zaps run off the send screen's zap slot, so a second tap can't evict the one still resolving, and send action ids are unique within a millisecond. Holding ⚡ (500ms) opens the amount screen in an edit mode — Save alone, or Save and zap this note — from the action bar and the chat chips alike; the press's timer lives on the element so a background repaint mid-press can't turn a lifted finger into a hold. Co-Authored-By: Claude Fable 5.1 <[email protected]>
Diffstat (limited to 'src/ark/manager.js')
-rw-r--r--src/ark/manager.js6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/ark/manager.js b/src/ark/manager.js
index c3a8b58..1381095 100644
--- a/src/ark/manager.js
+++ b/src/ark/manager.js
@@ -833,8 +833,12 @@ export class ArkManager {
changeIndex: changeSat > 0 ? this.state.nextKeyIndex++ : null,
};
});
+ // Two zaps tapped in quick succession can resolve in the same
+ // millisecond; each needs its own row.
+ let id = `send-${Date.now()}`;
+ while (this.state.actions.some((a) => a.id === id)) id += '-';
const action = {
- id: `send-${Date.now()}`, type: 'send', step: 'created',
+ id, type: 'send', step: 'created',
parts, amountSat, destAddress: addrString,
destPubkey: dest.userPubkey, destBlindedId: mailboxDelivery.data,
};