diff options
| author | Adam Soltys <[email protected]> | 2026-08-03 13:26:45 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-08-03 13:26:45 -0700 |
| commit | 5a602f87ddf314ba603da259e34fd40176e1f375 (patch) | |
| tree | 8f6b5b1c7c4ceb0644935c7fbf8e9993a58627f9 /src/app.js | |
| parent | 436af47e7219126f4c9b4e8d25c99a98bf6c37cb (diff) | |
| download | coinosv3-5a602f87ddf314ba603da259e34fd40176e1f375.tar.gz coinosv3-5a602f87ddf314ba603da259e34fd40176e1f375.zip | |
Balance card: a real button to change account, not two dots
The dots were an indicator pressed into service as a control — fine
under a thumb that can just swipe, too small for a mouse. They're
replaced by a pill in the header row naming the account it takes you to
(⇄ Savings / ⇄ Spending), which is both a proper click target and a
clearer answer to "what's the other one?". Swiping the card still works.
Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi
Diffstat (limited to 'src/app.js')
| -rw-r--r-- | src/app.js | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -2324,6 +2324,8 @@ function setAccountSel(a, dir) { render(); } +const SWAP_ICON = '<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="display:block"><path d="M8 3 4 7l4 4"/><path d="M4 7h16"/><path d="m16 21 4-4-4-4"/><path d="M20 17H4"/></svg>'; + function balanceCard() { // Dim + spin until this network has data (cache, Nostr state, or a scan has // populated balances once). `scanning` alone misses the window between @@ -2348,10 +2350,15 @@ function balanceCard() { h('div', { class: 'row between', style: 'align-items:center' }, h('div', { class: 'small faint', style: 'text-transform:uppercase;letter-spacing:.06em' }, hasArk ? (isSpending ? t('spendingLabel') : t('savingLabel')) : t('balance')), + // Swiping only helps on touch, and dots are an indicator rather than a + // target — so the switch is a real button that names where it goes. hasArk - ? h('div', { class: 'balance-dots' }, - h('button', { class: 'bdot' + (isSpending ? ' on' : ''), title: t('spendingLabel'), onClick: () => setAccountSel('spending') }), - h('button', { class: 'bdot' + (!isSpending ? ' on' : ''), title: t('savingLabel'), onClick: () => setAccountSel('savings') })) + ? h('button', { + class: 'balance-switch', + onClick: () => setAccountSel(isSpending ? 'savings' : 'spending', isSpending ? 'left' : 'right'), + }, + h('span', { html: SWAP_ICON }), + h('span', { class: 'bsw-label' }, isSpending ? t('savingLabel') : t('spendingLabel'))) : null), h('div', { class: 'amt', style: firstLoad ? 'opacity:.3' : '' }, firstLoad ? h('span', { class: 'spinner sm', style: 'margin-right:8px' }) : null, |
