diff options
| author | Adam Soltys <[email protected]> | 2026-08-18 00:39:03 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-08-18 00:39:03 -0700 |
| commit | 0a19b26e1289f79de7b9e3ddd149617c894e6250 (patch) | |
| tree | af4d84d5cff0bb964cf511115177118d4bd03abb /src | |
| parent | 6f9be107783a02713a508437b100e008a7e043b1 (diff) | |
| download | coinosv3-0a19b26e1289f79de7b9e3ddd149617c894e6250.tar.gz coinosv3-0a19b26e1289f79de7b9e3ddd149617c894e6250.zip | |
The top-up prompt counts money already on its way: a board awaiting confirmation quiets both the card button and the wizard step
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
Diffstat (limited to 'src')
| -rw-r--r-- | src/app.js | 6 | ||||
| -rw-r--r-- | src/features/ark.js | 7 |
2 files changed, 11 insertions, 2 deletions
@@ -2712,7 +2712,8 @@ function onboardScreen() { // one and Spending is empty-handed — a spending account with nothing in it // is a demo, not a wallet. const nextAfterAvatar = () => - (featureHook('arkReady') && wallet.spendable > 1000 && (featureHook('spendingSat') || 0) < 1000) + (featureHook('arkReady') && wallet.spendable > 1000 + && (featureHook('spendingSat') || 0) + (featureHook('spendingBoardingSat') || 0) < 1000) ? 'board' : 'success'; if (o.step === 'legacy') { @@ -3180,7 +3181,8 @@ function balanceCard() { // (Explicit latches carry a timestamp; self-heal only eats legacy booleans.) // A Spending face running on fumes while Savings sits comfortable gets a // one-tap top-up into the board panel. - hasSpending && isSpending && !ui.arkMoveOpen && spending < 1000 && wallet.spendable > 1000 + hasSpending && isSpending && !ui.arkMoveOpen && wallet.spendable > 1000 + && spending + (featureHook('spendingBoardingSat') || 0) < 1000 && featureHook('arkReady') && !wallet.watchOnly ? h('button', { class: 'btn-sm', style: 'margin-top:10px', onClick: () => { ui.arkMoveDir = 'toSpending'; ui.arkMoveOpen = true; render(); } }, t('topUpFromSavings')) : null, diff --git a/src/features/ark.js b/src/features/ark.js index 8ca63bd..5641186 100644 --- a/src/features/ark.js +++ b/src/features/ark.js @@ -2269,6 +2269,13 @@ export function arkFeature(ctx) { if (!ui.arkMoveOpen || wallet.watchOnly || !arkAvailable()) return null; return movePanel(); }, + // Sats mid-board (the on-chain tx awaiting its confirmation) — Spending + // doesn't count them yet, but a top-up PROMPT must: nagging someone to + // top up again while their top-up confirms is noise. + spendingBoardingSat() { + const b = arkBalance(); + return b ? b.boardingSat || 0 : 0; + }, spendingSat() { const b = arkBalance(); return b ? b.spendableSat + b.pendingSat : 0; |
