From 388071fef84d3c48f24d2b213411c3c0594c08e1 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 10 May 2026 20:28:23 +0000 Subject: [PATCH] Add account deletion and multi-section settings page MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rename /user-profile → /settings with 301 redirect from old URL - Add multi-section settings nav (Profile, Account, API placeholder, Data & Privacy) reusing existing SettingsDesktopNav/SettingsMobileGridNav components - Implement account deletion via anonymization: wipes all PII from users row, releases team ownerships, removes commissioner records, deletes sessions/accounts - Add data export request form that emails privacy@brackt.com via Resend - Add deletedAt timestamp column to users table (migration 0100) - Add anonymizeUserAccount() to user model - Add removeAllCommissionersByUserId() to commissioner model - Tests for both new model functions - Update UserMenu "Profile" link → "Settings" at /settings https://claude.ai/code/session_017Hvmof82Xr3UwKFc3pnC4X --- app/components/UserMenu.tsx | 4 +- .../user/settings/AccountSection.tsx | 79 + app/components/user/settings/ApiSection.tsx | 24 + .../user/settings/PrivacySection.tsx | 143 + .../user/settings/ProfileSection.tsx | 105 + app/models/__tests__/commissioner.test.ts | 15 +- app/models/__tests__/user.test.ts | 82 + app/models/commissioner.ts | 5 + app/models/user.ts | 21 + app/routes.ts | 3 +- .../leagues/__tests__/team-management.test.ts | 3 + app/routes/settings.tsx | 242 + app/routes/user-profile-redirect.tsx | 5 + app/routes/user-profile.tsx | 194 - database/schema.ts | 1 + drizzle/0100_mighty_weapon_omega.sql | 1 + drizzle/meta/0100_snapshot.json | 5775 +++++++++++++++++ drizzle/meta/_journal.json | 7 + 18 files changed, 6511 insertions(+), 198 deletions(-) create mode 100644 app/components/user/settings/AccountSection.tsx create mode 100644 app/components/user/settings/ApiSection.tsx create mode 100644 app/components/user/settings/PrivacySection.tsx create mode 100644 app/components/user/settings/ProfileSection.tsx create mode 100644 app/models/__tests__/user.test.ts create mode 100644 app/routes/settings.tsx create mode 100644 app/routes/user-profile-redirect.tsx delete mode 100644 app/routes/user-profile.tsx create mode 100644 drizzle/0100_mighty_weapon_omega.sql create mode 100644 drizzle/meta/0100_snapshot.json diff --git a/app/components/UserMenu.tsx b/app/components/UserMenu.tsx index 4c74e52..76763d6 100644 --- a/app/components/UserMenu.tsx +++ b/app/components/UserMenu.tsx @@ -50,10 +50,10 @@ export function UserMenu({
- Profile + Settings