aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-08-17 06:57:10 -0700
committerAdam Soltys <[email protected]>2026-08-17 06:57:10 -0700
commitede4516e2255bb65d22dd1a74d0e8332b0417194 (patch)
tree95f04322c65ea77f2026e72428a0ab5f5cf402e9
parentbe93ce6e37a6304d295b5ecc2f95db52964b0074 (diff)
downloadcoinosv3-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.js2
-rw-r--r--src/i18n.js2
-rw-r--r--tools/lock-wallet-test.js12
-rw-r--r--tools/padlock-flow-test.js2
4 files changed, 9 insertions, 9 deletions
diff --git a/src/app.js b/src/app.js
index de3e890..3a9a8d2 100644
--- a/src/app.js
+++ b/src/app.js
@@ -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());