Skip to content

Redesign account settings and align create/edit modals - #1408

Merged
max-1-max merged 1 commit into
developfrom
feature/settings-redesign
Oct 16, 2026
Merged

max-1-max merged 1 commit into
developfrom
feature/settings-redesign

Conversation

@max-1-max

Copy link
Copy Markdown
Collaborator

Summary

Account settings and the profile page were two separate tabbed pages under a plain top bar. This replaces both with one settings area at /settings that uses the app's sidebar layout, and brings every create/edit modal onto a shared design.

Settings area

  • Personal: Profile and Security (password change and two-factor on one page).
  • Account: General, Organizers (new list page with links into each organizer's settings), Team (the team access page, moved in unchanged), and Taxes and fees.
  • Layout: each page is built from shared SettingsPage / SettingsSection / SettingsRow pieces. Forms show an "Unsaved changes" footer with Discard and Save, and stay in sync with server data after saving.
  • Old URLs: /account/*, /manage/account and /manage/profile* redirect, so links in emails already sent keep working. Backend email links now point to the new paths.
  • Permissions: restricted and non-admin members only see the pages they can use, and anything else redirects to Profile.
  • Pending deletion: while deletion is pending, only the Account page stays reachable and its form is locked.
  • Delete account: the section now lists the upcoming events that block deletion, with links to their orders. The deletion status endpoint returns a new blocking_events field.

Modals

  • Shared shell: every create/edit modal (around 35) now uses the shared Modal with a sticky ModalFooter (Cancel plus the primary action, and an optional slot on the left for destructive actions). On phones the modal goes full-screen with the footer pinned to the bottom.
  • Redesigns: the tax/fee modal (type cards, percentage/fixed toggle, live preview) and the Create Organizer modal.
  • Edit modals: the primary button now says "Save Changes" instead of "Edit X".
  • Removed dead code: EditOrganizerModal, HeadingCard, TaxAndFeeList and the old pages.

Other

  • /settings is frame-protected in server.js.
  • Saving the account refreshes the cached account data.
  • Translations added for every locale.
  • E2E specs updated, with a new regression test for creating a tax from inside the product drawer.

Test plan

  • Backend unit suite, plus new unit and feature tests for the deletion-status blocking_events
  • scramble:analyze and pint are clean
  • tsc: no new errors
  • Full E2E against the dev stack: 491 passed. The 25 failures match the known dev-stack baseline (price-text, licence and message specs) exactly
  • Manually checked at desktop, tablet (820px) and phone (390px) widths

🤖 Generated with Claude Code

Replace the tabbed account settings and profile pages with a single
settings area at /settings, using the app's sidebar layout:

- Personal: Profile, Security (password + two-factor)
- Account: General, Organizers, Team, Taxes and fees
- Old /account/* and /manage/profile* URLs redirect, so links in
  emails already sent keep working
- Delete account lists the upcoming events blocking deletion, with
  links to their orders (new blocking_events on the deletion status
  endpoint)

Move every create/edit modal onto the shared Modal with a sticky
ModalFooter (Cancel + primary action). Modals go full-screen on phones
with the footer pinned to the bottom. Redesign the tax/fee and create
organizer modals.

Also frame-protect /settings, refresh cached account data after saving,
add translations for all locales, and update the E2E specs.
@railway-app

railway-app Bot commented Oct 16, 2026

Copy link
Copy Markdown

This PR was not deployed automatically as @max-1-max does not have access to the Railway project.

In order to get automatic PR deploys, please add @max-1-max to your workspace on Railway.

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@max-1-max

Copy link
Copy Markdown
Collaborator Author

I have read the CLA Document and I hereby sign the CLA

@max-1-max
max-1-max merged commit a4615e6 into develop Oct 16, 2026
6 of 7 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 16, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant