aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-08-15 23:49:42 -0700
committerAdam Soltys <[email protected]>2026-08-15 23:49:42 -0700
commit0f060c19156f7fec90ac5a5b3c6ef3fb8640e36c (patch)
treea4e2f1510f9df58e6eb4cb14dccfe5569893d52f
parent5f7d4c4be028f87fed93ed47f5a3444f7ccfea99 (diff)
downloadcoinosv3-0f060c19156f7fec90ac5a5b3c6ef3fb8640e36c.tar.gz
coinosv3-0f060c19156f7fec90ac5a5b3c6ef3fb8640e36c.zip
The lock prompt says Lock: locking an unsaved wallet asks for the password plainly, without a word about devices or a button that points the wrong way
Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_014tE4U5nEjGTQy8PwYqamfv
-rw-r--r--src/app.js7
-rw-r--r--src/i18n.js3
2 files changed, 6 insertions, 4 deletions
diff --git a/src/app.js b/src/app.js
index e35aa98..3754773 100644
--- a/src/app.js
+++ b/src/app.js
@@ -2476,17 +2476,18 @@ function pwPromptCard() {
const change = p.purpose === 'change';
const atLock = p.purpose === 'lock';
const newish = change || p.mode === 'set'; // entering a (new) password with confirm
+ const atLockSave = p.purpose === 'locksave'; // locking, but the vault needs its password first
return h('div', { class: 'card col' },
- h('h3', {}, atLock ? t('lockPwTitle') : change ? t('changePassword') : p.mode === 'set' ? t('setPassword') : t('enterPassword')),
+ h('h3', {}, atLock ? t('lockPwTitle') : atLockSave ? t('lockWallet') : change ? t('changePassword') : p.mode === 'set' ? t('setPassword') : t('enterPassword')),
h('p', { class: 'small muted', style: 'margin:0' },
- atLock ? t('lockPwDesc') : change ? t('changePasswordDesc') : p.purpose === 'locksave' ? t('lockSaveDesc') : p.mode === 'set' ? t('setPasswordDesc') : t('enterPasswordDesc')),
+ atLock ? t('lockPwDesc') : change ? t('changePasswordDesc') : atLockSave ? t('lockSaveDesc') : p.mode === 'set' ? t('setPasswordDesc') : t('enterPasswordDesc')),
change ? h('input', { type: 'password', placeholder: t('currentPassword'), value: p.v0, onInput: (e) => (p.v0 = e.target.value) }) : null,
h('input', { type: 'password', placeholder: newish ? t('passwordOptional') : t('password'), value: p.v1, onInput: (e) => (p.v1 = e.target.value) }),
newish ? h('input', { type: 'password', placeholder: t('confirmPassword'), value: p.v2, onInput: (e) => (p.v2 = e.target.value) }) : null,
p.error && h('div', { class: 'notice err' }, p.error),
h('div', { class: 'row gap6' },
h('button', { class: 'btn-ghost grow', onClick: cancelPw }, atLock ? t('lockPwSkip') : t('back')),
- h('button', { class: 'btn-primary grow', onClick: submitPw }, newish ? t('save') : t('unlock'))
+ h('button', { class: 'btn-primary grow', onClick: submitPw }, newish ? t('save') : atLockSave ? t('lockAction') : t('unlock'))
)
);
}
diff --git a/src/i18n.js b/src/i18n.js
index 58666ea..18f8689 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -80,7 +80,8 @@ const STR = {
profUsername: 'Username',
profDisplayName: 'Display name',
profUnameInvalid: 'Usernames can only use letters, numbers, dots, dashes and underscores.',
- lockSaveDesc: "This wallet isn't saved on this device yet. Enter your password to save it before locking — otherwise unlocking couldn't bring it back.",
+ lockSaveDesc: 'Enter your password to lock your wallet.',
+ lockAction: 'Lock',
password: 'Password',
confirmPassword: 'Confirm password',
pwMismatch: 'Passwords do not match.',