UX: Move key backup into Accounts section; remove standalone Key Backup & Recovery panel #44
Labels
No labels
area:api
area:core
area:docs
area:infra
area:ux
dependencies
documentation
duplicate
good first issue
help wanted
invalid
question
rust
status:complete
status:partial
status:planned
type:bug
type:design
type:feature
type:infra
type:refactor
type:research
type:ux
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
icub3d/decentcom#44
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Migrated from GitHub issue icub3d/decentcom#58
Original Author: @icub3d
Original Date: 2026-04-16T19:18:40Z
UX: Move key backup into Accounts section; remove standalone Key Backup & Recovery panel
Overview
The user settings panel currently shows three separate sections: Accounts, Profile, Key Backup & Recovery, and Theme. The Key Backup & Recovery section duplicates a concern that belongs to account management. This feature removes the standalone
KeyBackupPaneland adds a per-account backup button directly inside the Accounts section. Clicking it opens a modal with the existingKeyExportcomponent. Import is already handled by the "+ Add Account" button, which opens theSetupmodal with the "Restore from Backup File" flow.Background
The
KeyBackupPanel(client/src/components/backup/KeyBackupPanel.tsx) is rendered inServerSidebar.tsxinside the user-settings flyout panel. It wrapsKeyExportandKeyImportside-by-side. SinceKeyImportis already accessible via the setup flow ("+ Add Account" → "Restore from Backup File"), the only missing piece is a convenient per-account export shortcut integrated into theAccountSwitcher.Requirements
KeyBackupPanelcomponent from the user settings flyout inServerSidebar.tsxAccountSwitcher.tsxKeyExportscoped to that account (the active account is exported — no account switching is required sinceKeyExportalways exports the active key; clicking backup on a non-active account should switch to it first, or the button should only appear on the active account)KeyBackupPanel.tsxis deleted once no longer referencedDesign
API / Interface Changes
No server or Tauri IPC changes required.
KeyExportis reused as-is.Data Model Changes
None.
Component Changes
client/src/components/layout/ServerSidebar.tsx— removeKeyBackupPanelimport and usage from the user-settings panelclient/src/components/accounts/AccountSwitcher.tsx— add per-account backup button; manage abackupFor: string | nullmodal state; render aModalcontainingKeyExportwhen setclient/src/components/backup/KeyBackupPanel.tsx— delete (no longer used)client/src/components/backup/KeyExport.tsx— no changes; reused inside the new modalclient/src/components/backup/KeyImport.tsx— no changes; remains used bySetupvia the restore flowTask List
KeyBackupPanelfromServerSidebar.tsx(remove import and the JSX element in the user-settings panel)backupForstate toAccountSwitcher.tsx; add a 💾 backup icon button next to each account row (alongside the existing 🗑 delete button)ModalinAccountSwitchercontainingKeyExportwhenbackupForis set; dismiss on closeclient/src/components/backup/KeyBackupPanel.tsxAccountSwitcher.test.tsx: verify backup button renders, modal opens on click, modal closes on dismissTest List
AccountSwitcherKeyExportmodalKeyExportOpen Questions
key_exportIPC command always exports the currently active key. If the button appears on non-active accounts, we should either (a) switch to that account before opening the modal, or (b) disable the button on non-active accounts with a tooltip explaining why. A simple starting point: show the button only on the active account.