profiles: add address management, user edit, fix form redirect

- Add type (Mailing/Billing/Shipping) and isDefault fields to Address
  schema with migration. Unique default enforced server-side.
- Rewrite profiles page with inline address creation form and
  editable user name/email within the profile modal.
- Add upsertAddress and updateUser form actions.
- Fix form redirect by adding use:enhance to AdminForm.
- Disable Update button in AdminForm until a field is changed
  (prevents accidental submissions).
This commit is contained in:
NeilClack
2026-07-07 13:20:35 -05:00
parent faacbab1de
commit 38347f5f24
10 changed files with 1162 additions and 3 deletions
@@ -0,0 +1,3 @@
-- AlterTable
ALTER TABLE "Address" ADD COLUMN "isDefault" BOOLEAN NOT NULL DEFAULT false,
ADD COLUMN "type" TEXT NOT NULL DEFAULT 'Mailing';
+3 -2
View File
@@ -55,6 +55,8 @@ model Address {
state String
postalCode String
country String
type String @default("Mailing")
isDefault Boolean @default(false)
}
model Session {
@@ -119,7 +121,6 @@ model Proclamation {
solfeggioFrequency SolfeggioFrequency @relation(fields: [solfeggioFrequencyId], references: [id])
categoryId Int
category ProclamationCategory @relation(fields: [categoryId], references: [id])
price Float @default(0.99)
userProclamations UserProclamations[]
subscriptionLevelId Int @default(1)
subscriptionLevel SubscriptionLevel @relation(fields: [subscriptionLevelId], references: [id])
@@ -141,7 +142,7 @@ model UserProclamations {
model SolfeggioFrequency {
id Int @id @default(autoincrement())
name String @unique
value Float @unique
value Int @unique
proclamations Proclamation[]
}