Skip to content

refactor: reorganize security settings by domain - #7

Merged
GFrancV merged 1 commit into
mainfrom
feat/security-settings-reorg
Jul 22, 2026
Merged

refactor: reorganize security settings by domain#7
GFrancV merged 1 commit into
mainfrom
feat/security-settings-reorg

Conversation

@GFrancV

@GFrancV GFrancV commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Summary

  • Part 1/2 of Reorganize Security Settings: fix semantic grouping and scale beyond a single scrolling modal #6 — pure reorganization, no new components/ui/ primitives, no changes to KeyFileSetting's internal wizard logic (that extraction into its own dialog is part 2).
  • Gear dropdown: moved "Open backups folder" and consolidated it with "Vault Location" (path, save copy as); removed "Auto-lock" timeout and "Change password" from here — both now live in Security settings.
  • Security settings modal: unified Auto-lock (timeout + "Lock when minimized" together); added an "Authentication" section grouping Password (opens ChangePasswordDialog, now owned by this dialog) and Key file with equal visual weight; removed the Backups section (moved to dropdown); condensed the 3 previously-readonly checkbox rows into one "Always-on protections" info paragraph.
  • "Change password" now closes Security settings before opening (no dialog stacking — matches the rest of the app's one-dialog-at-a-time pattern).

Test plan

  • pnpm validate (typecheck + lint + format) passes
  • Manually verified in pnpm dev: auto-lock timeout persists, dropdown shows the new grouping, backups folder opens, change-password flow closes/opens correctly, key file wizard still works in its new location, remaining toggles persist

Backups and vault-location actions were mixed into the security dialog
despite being data-management concerns, auto-lock was split between
the gear dropdown (timeout) and the modal (triggers), and Key file had
far less prominence than Change password despite similar criticality.

Moves Vault Location/Save copy/Backups into the gear dropdown, unifies
auto-lock timeout + triggers in one section, and groups Password and
Key file under a new Authentication section so both open their own
flow with equal visual weight.

Fixes #6
@github-actions

Copy link
Copy Markdown

React Doctor found 5 issues in 2 files · 5 warnings · score 80 / 100 (Needs work) · vs main

5 warnings

src/renderer/src/components/settings/KeyFileSetting.tsx

  • ⚠️ L30 Large component is hard to read and change no-giant-component
  • ⚠️ L30 Many related useState calls prefer-useReducer
  • ⚠️ L84 Loading flag reset outside finally no-loading-flag-reset-outside-finally
  • ⚠️ L103 Loading flag reset outside finally no-loading-flag-reset-outside-finally

src/renderer/src/components/sidebar.tsx

  • ⚠️ L343 Array lookup inside a loop js-set-map-lookups
⚠️ Warning: .github/workflows/react-doctor.yml is configured incorrectly. See below to fix.

React Doctor compares against main to report only the issues this pull request introduces. This run couldn't complete that comparison (usually a shallow CI checkout with no merge base), so it listed every issue in the changed files, including ones that already existed on main.

Add fetch-depth: 0 to the actions/checkout step in .github/workflows/react-doctor.yml so the checkout includes the history React Doctor needs:

 jobs:
   react-doctor:
     steps:
       - uses: actions/checkout@v5
+        with:
+          fetch-depth: 0

       - uses: millionco/react-doctor@v2

To silence this warning, set silence-missing-baseline-warning: true on the React Doctor action.

Reviewed by React Doctor for commit 6d2a6cd. See inline comments for fixes.

@GFrancV GFrancV added enhancement New feature or request ui/ux labels Jul 22, 2026
@GFrancV
GFrancV merged commit ce729a2 into main Jul 22, 2026
3 checks passed
@GFrancV
GFrancV deleted the feat/security-settings-reorg branch July 22, 2026 10:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request ui/ux

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant