diff options
| author | Adam Soltys <[email protected]> | 2026-08-17 06:57:10 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-08-17 06:57:10 -0700 |
| commit | ede4516e2255bb65d22dd1a74d0e8332b0417194 (patch) | |
| tree | 95f04322c65ea77f2026e72428a0ab5f5cf402e9 | |
| parent | be93ce6e37a6304d295b5ecc2f95db52964b0074 (diff) | |
| download | coinosv3-ede4516e2255bb65d22dd1a74d0e8332b0417194.tar.gz coinosv3-ede4516e2255bb65d22dd1a74d0e8332b0417194.zip | |
The wallet row's delete earns a trash can instead of an ambiguous ✕, and Clear all says Delete all — the word for what it does
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01JtaatFfAbx91Nh3xqKVqKz
| -rw-r--r-- | src/app.js | 2 | ||||
| -rw-r--r-- | src/i18n.js | 2 | ||||
| -rw-r--r-- | tools/lock-wallet-test.js | 12 | ||||
| -rw-r--r-- | tools/padlock-flow-test.js | 2 |
4 files changed, 9 insertions, 9 deletions
@@ -2340,7 +2340,7 @@ function accountsScreen() { }, (isActive ? '● ' : '○ ') + viewLabel(a, view) + tag), h('button', { class: 'btn-sm wallet-row-btn', title: t('renameWallet'), onClick: () => { ui.editId = a.id; ui.editView = view; ui.editLabel = viewLabel(a, view); render(); } }, '✎'), h('button', { class: 'btn-sm wallet-row-btn', title: t('walletSettings'), onClick: () => openAccountSettings(a.id), html: '<svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:block"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>' }), - h('button', { class: 'btn-sm wallet-row-btn', title: t('remove'), onClick: () => { ui.confirmRemove = a.id; render(); } }, '✕') + h('button', { class: 'btn-sm wallet-row-btn', title: t('remove'), onClick: () => { ui.confirmRemove = a.id; render(); }, html: '<svg width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:block"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/><line x1="10" y1="11" x2="10" y2="17"/><line x1="14" y1="11" x2="14" y2="17"/></svg>' }) ), a.type === 'full' && view === viewsOf(a)[viewsOf(a).length - 1] ? h('button', { class: 'linklike small', style: 'align-self:flex-start', onClick: () => (a.persisted ? startForget(a.id) : startSave(a.id)) }, diff --git a/src/i18n.js b/src/i18n.js index 8e8dcd2..e2416af 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -38,7 +38,7 @@ const STR = { lockWallet: 'Lock wallet', accounts: 'Wallets', addWallet: 'Add wallet', - clearAll: 'Clear all', + clearAll: 'Delete all', clearAllWarn: '⚠ This removes every wallet from this device. Any wallet whose recovery phrase or key you have not backed up will be lost for good.', removeWalletTitle: 'Remove wallet', removeWalletWarn: '⚠ Remove “{name}” from this device? It will be gone from this browser — make sure you have its recovery phrase. Other wallets aren’t affected.', diff --git a/tools/lock-wallet-test.js b/tools/lock-wallet-test.js index 5a25615..30f5982 100644 --- a/tools/lock-wallet-test.js +++ b/tools/lock-wallet-test.js @@ -1,4 +1,4 @@ -// "Log out" locks; only "Clear all" deletes. +// "Log out" locks; only "Delete all" deletes. // // Wallets save themselves to this device under an empty password unless the // user sets one. Logging out of a passwordless vault offers a password ONCE @@ -119,14 +119,14 @@ try { check('the password opens it', await waitText('receive')); await sleep(1000); - console.log('\n[clear all is the destructive one]'); + console.log('\n[delete all is the destructive one]'); await click('button', 'Wallets'); await sleep(800); - await click('button', 'Clear all'); + await click('button', 'Delete all'); await sleep(600); txt = await body(); - check('it warns first', /clear all/i.test(txt) && /(delete|remove|erase|wipe|lose)/i.test(txt), txt.slice(0, 160).replace(/\n+/g, ' | ')); - await page.evaluate(() => { const b = [...document.querySelectorAll('.btn-primary')].find((e) => /clear all/i.test(e.textContent)); if (b) b.click(); }); + check('it warns first', /delete all/i.test(txt) && /(delete|remove|erase|wipe|lose)/i.test(txt), txt.slice(0, 160).replace(/\n+/g, ' | ')); + await page.evaluate(() => { const b = [...document.querySelectorAll('.btn-primary')].find((e) => /delete all/i.test(e.textContent)); if (b) b.click(); }); await sleep(1200); txt = await body(); check('everything is gone', (await vaultSize()) === 0); @@ -137,5 +137,5 @@ try { await browser.close(); server.stop(true); } -console.log(fails ? '\n❌ failures above' : '\n✅ log out locks, clear all deletes'); +console.log(fails ? '\n❌ failures above' : '\n✅ log out locks, delete all deletes'); process.exit(fails ? 1 : 0); diff --git a/tools/padlock-flow-test.js b/tools/padlock-flow-test.js index ce37f1a..4b659aa 100644 --- a/tools/padlock-flow-test.js +++ b/tools/padlock-flow-test.js @@ -59,7 +59,7 @@ try { await sleep(600); txt = await body(); check('declining lands back home', /receive/i.test(txt) && /balance/i.test(txt), txt.slice(0, 120).replace(/\n+/g, ' | ')); - check('not on the wallets list', !/add wallet|clear all/i.test(txt)); + check('not on the wallets list', !/add wallet|delete all/i.test(txt)); console.log('\n[the logo still means home]'); await page.evaluate(() => document.querySelector('.brand')?.click()); |
