Skip to content

UX improvements: send progress, tables, toast policy, seed-phrase safety#52

Merged
codewordneptune merged 11 commits into
cwn/spendable-checkfrom
cwn/ux-polish-round1
Jul 15, 2026
Merged

UX improvements: send progress, tables, toast policy, seed-phrase safety#52
codewordneptune merged 11 commits into
cwn/spendable-checkfrom
cwn/ux-polish-round1

Conversation

@codewordneptune

@codewordneptune codewordneptune commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

Additional collection of UX improvements: a clearer send progress panel, aligned money columns, failure toasts that wait to be seen, and safer seed phrase handling.

Stacked on #51 (base: cwn/spendable-check), so merge that first; this diff then contains only its own commits.

Changes

  • Send progress panel: rendered as a bordered status card matching the pending transactions panel, with a section-scale title and a final "Awaiting confirmation" step. TimeClock rolls elapsed times up to the two most significant units (s/m/h/d).
  • History tables: balance change and UTXO amount columns (headers included) are right aligned with tabular figures, so decimal points stack down each column.
  • Toast policy and copy: failures of long operations (send, update install, resync, randomness import) stay on screen until dismissed. Wrong-password toasts replace instead of stack. Copy fixes: "Remote node URL updated.", "Cache file deleted", "Incorrect password", "Couldn't import account".
  • Seed phrase safety and terminology:
    • "Seed phrase" is the single term app wide.
    • Both creation flows warn that the phrase is the only recovery path and that anyone who has it can spend the funds.
    • The add-account modal gates Create behind an "I have written down my seed phrase" checkbox, which resets if the phrase is regenerated.
    • All three reveal surfaces share one 60 second auto-hide that restarts on reveal instead of stacking timers.
    • "Export account" is renamed "View seed phrase" (nothing is exported), with an anti-phishing warning, an autofocused password field, and Enter to submit.
    • The confirm-step error states the actual problem: "Some words are in the wrong place. Check them and try again."

Verification

  • TypeScript: tsc --noEmit clean, no new warnings.
  • All changes exercised live via tauri dev hot reload during two days of hands-on testing.

🤖 Generated with Claude Code

codewordneptune and others added 7 commits July 12, 2026 02:32
…urs/days

The progress panel is a bordered card with a 16px section-scale title
and a final "Awaiting confirmation" step that hands off to the pending
section below. TimeClock shows the two most significant units (s/m/h/d)
and clamps negative elapsed values.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Balance-change and UTXO amount columns (headers included) align flush
right so decimal points stack down each column; centered numeric values
float by their own width and leave a ragged edge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Failures of send/update-install/resync/randomness-import stay on screen
until dismissed — the user has likely tabbed away during a long
operation, and the outcome must not expire unseen. Wrong-password
attempts on the lock screen replace their toast via a fixed id instead
of stacking, with "Incorrect password" copy. Settings success toasts
read "Remote node URL updated." and "Cache file deleted". Copy buttons
stop click propagation so copying inside a clickable row never triggers
the row action.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
"Seed phrase" is the single term app-wide. Both creation flows carry the
full two-part warning (only recovery path + possession equals control),
and the add-account modal gates Create behind an "I have written down my
seed phrase" attestation that resets if the phrase is regenerated. All
three reveal surfaces share one 60s auto-hide (use-seed-hide-timer):
revealing restarts the full window instead of stacking timers, manual
hide retires it, unmount cleans up.

The account menu's seed action is "View seed phrase" (key icon, matching
modal title) with a confidentiality/anti-phishing warning, an autofocused
password field, and Enter-to-submit. Import flows say "account"
consistently, and the confirm-step error tells the user what to do:
"Some words are in the wrong place."

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@codewordneptune codewordneptune changed the title UX improvements round 1: send progress, tables, toast policy, seed-phrase safety UX improvements round 3: send progress, tables, toast policy, seed-phrase safety Jul 12, 2026
@codewordneptune codewordneptune changed the title UX improvements round 3: send progress, tables, toast policy, seed-phrase safety UX improvements: send progress, tables, toast policy, seed-phrase safety Jul 12, 2026
@codewordneptune codewordneptune self-assigned this Jul 12, 2026
Comment on lines +71 to +73
{/* Task language over mechanism language: nothing is exported (no
file/keystore) — the flow reveals the seed phrase for backup or
verification. */}

@Sword-Smith Sword-Smith Jul 13, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is a bit to liberal with comments for my taste. This code doesn't need a comment. The text in the <Text> tag already explains what this button does. Otherwise, very nice!

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are absolutely right, fixed!

codewordneptune and others added 2 commits July 15, 2026 16:29
… seed grid spacing

The Add-account modal's middle content (name, warning, seed grid,
reveal controls) scrolls only when the window is too short to show it
all; the attestation checkbox and Create button stay pinned below,
always reachable. On normal window heights the scroll never engages and
the layout is unchanged. The modal uses a small yOffset so it can spend
nearly the full window height before the inner scroll kicks in.

Seed grids across the app now share the same 8px row gutter: onboarding
step 2, both grids of the confirm step (answer slots and word bank),
and the Add-account modal. The default 16px gutter spent 80px of pure
whitespace across six rows and had drifted between copies.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@codewordneptune
codewordneptune merged commit 555276e into cwn/spendable-check Jul 15, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants