aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-11-12 10:19:59 -0700
committerAdam Soltys <[email protected]>2026-11-12 10:19:59 -0700
commit188cc8b6471f3114d548aca319c5338fcbe92e5f (patch)
tree6e0f8cca707cf982f998232d48fb0d52e00b3c35 /src
parent3197c707e6357623eee4e1356003f0c60b71e478 (diff)
downloadcoinosv3-188cc8b6471f3114d548aca319c5338fcbe92e5f.tar.gz
coinosv3-188cc8b6471f3114d548aca319c5338fcbe92e5f.zip
Settings → Wallet lists Spending and Savings, each opening its balance card's settings. "can we make the spending wallet settings accessible through the main settings -> wallet page somehow?" (Adam, 2026-11-12), after Nils couldn't find the Spending settings: the gear on the Spending card was the only way in. A "Balance settings" card under the recovery phrase has a row per balance the wallet shows (Spending only once it's set up; a single-purpose wallet shows its one), each opening the same page as that card's gear (coins, renewals, custody and exit for Spending; lock, password, recovery phrase and public key for both). tools/balance-settings-row-test.js (mainnet, only the Ark server's info let through)HEADmaster
Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01VMan6UKGJyuGyZFxddYRxS
Diffstat (limited to 'src')
-rw-r--r--src/app.js19
-rw-r--r--src/i18n.js3
2 files changed, 21 insertions, 1 deletions
diff --git a/src/app.js b/src/app.js
index 50aa5c8..e6e6843 100644
--- a/src/app.js
+++ b/src/app.js
@@ -3213,7 +3213,7 @@ function settingsTab() {
// matters if the phone is lost tonight
case 'wallet':
if (ui.delAcct && a) return deleteAccountView(a);
- return page(a ? [recoveryCard(a), walletNameCard(a), pubkeyCard(a), historyExportCard(), deleteAccountCard(a)] : []);
+ return page(a ? [recoveryCard(a), balanceSettingsCard(a), walletNameCard(a), pubkeyCard(a), historyExportCard(), deleteAccountCard(a)] : []);
case 'payments': return page(featureAll('settingsCards').reverse());
case 'pos': return page(featureAll('posSettingsCards').reverse()); // the till's own card first, then the terminal's
case 'network': return page([networkCard(), explorerCard()]); // an old bookmark of the tile; the cards live under Advanced now
@@ -3906,6 +3906,23 @@ function recoveryCard(a) {
);
}
+// The balance cards' gears, reachable from Settings → Wallet too: "I simply
+// cannot find this option" (Nils, 2026-11-12) about the Spending card's gear.
+function balanceSettingsCard(a) {
+ if (a.id !== activeId) return null;
+ const views = a.kind ? [a.kind] : spendingActive() ? ['spending', 'savings'] : ['savings'];
+ const row = (view) => h('button', {
+ class: 'btn-ghost btn-block balance-settings-row', 'data-view': view,
+ style: 'display:flex;align-items:center;gap:10px;text-align:left;padding:10px 4px',
+ onClick: () => openWalletSettings(view),
+ },
+ h('span', { style: 'display:flex;color:var(--muted)', html: GEAR_ICON(18) }),
+ h('span', { class: 'col', style: 'flex:1;gap:2px' },
+ h('span', { style: 'font-weight:600' }, viewLabel(a, view)),
+ h('span', { class: 'small muted' }, t(view === 'spending' ? 'spendingSettingsDesc' : 'savingsSettingsDesc'))),
+ h('span', { class: 'muted' }, '›'));
+ return h('div', { class: 'card col', style: 'gap:4px' }, h('h3', {}, t('balanceSettingsTitle')), ...views.map(row));
+}
function walletNameCard(a) {
const saveName = () => {
const v = (ui.editLabel || '').trim();
diff --git a/src/i18n.js b/src/i18n.js
index 1d14a36..194ce40 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -1224,6 +1224,9 @@ const STR = {
explorerUrlHint: 'Esplora / electrs REST base, e.g. https://mempool.space/api',
walletName: 'Account name',
walletSettings: 'Account settings',
+ balanceSettingsTitle: 'Balance settings',
+ spendingSettingsDesc: 'Coins, renewals, who holds them, moving them out',
+ savingsSettingsDesc: 'Lock, password, recovery phrase, public key',
securityTitle: 'Security',
walletSettingsDesc: 'Name, recovery phrase, public key, and auto-logout for this account.',
autolockTitle: 'Log out automatically',