Add general settings page #169

Merged
erik merged 1 commit from feat/task-b4903b73-general-settings into main 2026-06-20 08:55:42 -05:00
Owner

Summary

  • Replace /settings overview cards with a General settings page for profile and appearance.
  • Let signed-in users update their Display Name while displaying email as read-only login identity.
  • Move the color mode toggle to the General settings page.
  • Remove the color mode toggle from public/settings headers while keeping color mode script support.
  • Update tests for display-name updates, read-only email display, General settings rendering, and header toggle removal.

Verification

  • npm run build --workspace @slugkit/template-site
  • Targeted template-site app/auth/public/passkeys/site-user tests
  • ./scripts/pre-pr.sh
## Summary - Replace `/settings` overview cards with a General settings page for profile and appearance. - Let signed-in users update their Display Name while displaying email as read-only login identity. - Move the color mode toggle to the General settings page. - Remove the color mode toggle from public/settings headers while keeping color mode script support. - Update tests for display-name updates, read-only email display, General settings rendering, and header toggle removal. ## Verification - `npm run build --workspace @slugkit/template-site` - Targeted template-site app/auth/public/passkeys/site-user tests - `./scripts/pre-pr.sh`
feat: add general settings page
All checks were successful
CI / build-lint-test (pull_request) Successful in 50s
d0cabbd19a
Task: #task-b4903b73
Author
Owner

PR Review: Approved

Summary

This PR replaces the redundant /settings overview card grid with a General settings page, adds display-name editing for the signed-in site user, displays email as read-only login identity, moves the color-mode toggle into General settings, and removes header color-mode buttons while preserving the script that applies saved light/dark/system preference.

Acceptance criteria

  • A general settings page exists in place of the overview settings page — met: /settings renders the General profile/appearance settings page and the settings nav now labels the route as General.
  • Users can change their Display Name from the general settings page — met: POST /settings updates site_users.display_name via updateSiteUserDisplayName, with route and helper tests.
  • The signed-in user's email address is displayed read-only on the general settings page — met: the page renders the session user's email as non-input text and keeps email identity unchanged in tests.
  • The dark/light mode toggle appears on the general settings page — met: General settings includes a data-color-mode-toggle appearance control.
  • The dark/light mode toggle no longer appears in the main header menu — met: public/settings headers no longer render the header color-mode button; tests assert no header color-mode-toggle button while color-mode script support remains.

Blocking issues

None.

Warnings

None.

Verification

  • npm run build --workspace @slugkit/template-site
  • Targeted template-site app/auth/public/passkeys/site-user tests
  • ./scripts/pre-pr.sh
  • Forgejo Actions run #235 passed.

Verdict

Approved. Stop at the human merge gate.

PR Review Worker Result

  • pr: open
  • review: approved
  • pr_comment: posted
  • task_comment: posted
  • blocking_issues: 0
  • warnings: 0
  • criteria_total: 5
  • criteria_met: 5
  • criteria_missing: 0
## PR Review: Approved ### Summary This PR replaces the redundant `/settings` overview card grid with a General settings page, adds display-name editing for the signed-in site user, displays email as read-only login identity, moves the color-mode toggle into General settings, and removes header color-mode buttons while preserving the script that applies saved light/dark/system preference. ### Acceptance criteria - [x] A general settings page exists in place of the overview settings page — met: `/settings` renders the General profile/appearance settings page and the settings nav now labels the route as General. - [x] Users can change their Display Name from the general settings page — met: `POST /settings` updates `site_users.display_name` via `updateSiteUserDisplayName`, with route and helper tests. - [x] The signed-in user's email address is displayed read-only on the general settings page — met: the page renders the session user's email as non-input text and keeps email identity unchanged in tests. - [x] The dark/light mode toggle appears on the general settings page — met: General settings includes a `data-color-mode-toggle` appearance control. - [x] The dark/light mode toggle no longer appears in the main header menu — met: public/settings headers no longer render the header color-mode button; tests assert no header `color-mode-toggle` button while color-mode script support remains. ### Blocking issues None. ### Warnings None. ### Verification - `npm run build --workspace @slugkit/template-site` - Targeted template-site app/auth/public/passkeys/site-user tests - `./scripts/pre-pr.sh` - Forgejo Actions run #235 passed. ### Verdict Approved. Stop at the human merge gate. PR Review Worker Result - pr: open - review: approved - pr_comment: posted - task_comment: posted - blocking_issues: 0 - warnings: 0 - criteria_total: 5 - criteria_met: 5 - criteria_missing: 0
erik merged commit e63cc33b7f into main 2026-06-20 08:55:42 -05:00
erik deleted branch feat/task-b4903b73-general-settings 2026-06-20 08:55:42 -05:00
erik referenced this pull request from a commit 2026-06-20 08:55:44 -05:00
Sign in to join this conversation.
No description provided.