diff options
| author | Adam Soltys <[email protected]> | 2026-08-15 15:45:20 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-08-15 15:45:20 -0700 |
| commit | c37d7657279252f712f87185b878e8a5748d86ad (patch) | |
| tree | 6671e5309d9bdde789d5da32e3f209b89e9b576e /src | |
| parent | a61677751a8a90d45f1c1d05e26efff15f885008 (diff) | |
| download | coinosv3-c37d7657279252f712f87185b878e8a5748d86ad.tar.gz coinosv3-c37d7657279252f712f87185b878e8a5748d86ad.zip | |
Locking lands on a page that says Locked — the state confirms itself instead of reading as a request
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
Diffstat (limited to 'src')
| -rw-r--r-- | src/app.js | 7 | ||||
| -rw-r--r-- | src/i18n.js | 2 |
2 files changed, 6 insertions, 3 deletions
@@ -1497,6 +1497,7 @@ function unlockVault() { if (!attemptVaultUnlock(ui.vaultPw)) { ui.vaultError = t('pwWrong'); render(); return; } ui.vaultPw = ''; ui.vaultError = ''; + ui.justLocked = false; const ms = ui.unlockFor != null ? ui.unlockFor : Number(localStorage.getItem(UNLOCK_FOR_KEY)) || 0; try { localStorage.setItem(UNLOCK_FOR_KEY, String(ms)); @@ -1741,7 +1742,7 @@ function lockBtn() { // has no header at all.) return h('button', { class: 'header-msgs', title: t('lockWallet'), 'aria-label': t('lockWallet'), - onClick: () => { lock({ offerPassword: true }); toast(t('lockedToast')); }, + onClick: () => { lock({ offerPassword: true }); ui.justLocked = true; toast(t('lockedToast')); }, }, h('span', { class: 'hm-ico', style: 'font-size:18px;line-height:1' }, '\u{1F513}')); } @@ -2422,8 +2423,8 @@ function vaultScreen() { h('div', { class: 'card col' }, h('div', { class: 'row gap6', style: 'align-items:center' }, h('span', { style: 'font-size:20px;line-height:1' }, '\u{1F512}'), - h('h3', { style: 'margin:0' }, t('unlockSaved'))), - h('p', { class: 'small muted', style: 'margin:0' }, t('unlockSavedDesc')), + h('h3', { style: 'margin:0' }, ui.justLocked ? t('lockedTitle') : t('unlockSaved'))), + h('p', { class: 'small muted', style: 'margin:0' }, ui.justLocked ? t('lockedDesc') : t('unlockSavedDesc')), h('input', { type: 'password', placeholder: t('password'), value: ui.vaultPw, onInput: (e) => (ui.vaultPw = e.target.value), onKeyDown: (e) => { if (e.key === 'Enter') unlockVault(); } }), h('div', { class: 'row between', style: 'align-items:center;gap:10px' }, diff --git a/src/i18n.js b/src/i18n.js index e6123fd..381b3ca 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -672,6 +672,8 @@ const STR = { spendingName: 'Spending', manageAccounts: 'Wallets', lockedToast: 'Locked', + lockedTitle: 'Locked', + lockedDesc: 'Your wallets are locked on this device. Enter your password to open them again.', settingsWalletDesc: 'Name, keys, backup', settingsPaymentsDesc: 'Zaps and auto-withdraw', settingsNetworkDesc: 'Servers and explorers', |
