diff options
| author | Adam Soltys <[email protected]> | 2026-08-27 23:37:52 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-08-27 23:37:52 -0700 |
| commit | 92dd80a816c3efdabfd9aaabb3461d9078b39b5e (patch) | |
| tree | d3cccb14220ed7c22b2e2c16cd03554f763013b3 /src/app.js | |
| parent | 05df998c0e72d4579620ee9e7fd990c99905ab14 (diff) | |
| download | coinosv3-92dd80a816c3efdabfd9aaabb3461d9078b39b5e.tar.gz coinosv3-92dd80a816c3efdabfd9aaabb3461d9078b39b5e.zip | |
The wallet arrives without ceremony: sign-in swaps screens instantly (a one-shot no-anim flag on the handover), and the spending-setup ask holds its tongue until the name restore has settled instead of flashing while the answer is seconds away
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_019eA8JRq9Wr7z2fRQk99HLi
Diffstat (limited to 'src/app.js')
| -rw-r--r-- | src/app.js | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -478,7 +478,13 @@ function renderInner() { // navigations: boot screens shuffle beneath the shell (unlock → restored // wallet), then the resolved profile replaces the shell in place. The key // still updates, but nothing slides or re-animates until the landing ends. - if (uiChanged('nav', navKey) && !(ui.pubProfPending || ui.pubProfHold)) _navAt = performance.now(); + if (uiChanged('nav', navKey)) { + // ui.navAnimSkip: a one-shot "this navigation must not animate" — set by + // sign-in right before the wallet screen takes over, so the handover is + // an instant swap instead of a fade over a page that's still settling. + if (!(ui.pubProfPending || ui.pubProfHold || ui.navAnimSkip)) _navAt = performance.now(); + ui.navAnimSkip = false; + } applyAnim(screen, 'anim-page', (performance.now() - _navAt) < 340 ? performance.now() - _navAt : -1); morphChildren(root, [screen, footer()]); if (fpath) { @@ -3229,6 +3235,7 @@ function balanceCard() { ? h('button', { class: 'btn-sm', style: 'margin-top:10px', onClick: () => { ui.arkMoveDir = 'toSpending'; ui.arkMoveOpen = true; render(); } }, t('topUpFromSavings')) : null, !hasSpending && !kindLocked && featureHook('arkReady') && !wallet.watchOnly && acc0 && acc0.type === 'full' + && featureHook('namesSettled') !== 'pending' // a restoring name may prove Spending any second — don't flash the setup ask ? h('button', { class: 'btn-sm', style: 'margin-top:10px', onClick: () => { acc0.spendingSetup = Date.now(); persistAccounts(); |
