Users
Dashboard: every screen, state and flow in Users.
18 screens and overlays, 70 states, 2 flows. Frames show a real screenshot where one was captured and a wireframe card where the state needs data or conditions a device run cannot produce.
Flows
Users administration
Edit User
User updated
Toast then redirect to detail
Needs data: Needs specific backend rows, a role, or a submitted write on a disposable record
Branches and edge cases
Restore User
Needs data: Needs a user with status deleted
Change User Role
Self target blocked
Toast: Cannot modify your own role
Not captured yet
Bulk Edit
Bulk result
Toast: N processed, M failed
Needs data: Needs specific backend rows, a role, or a submitted write on a disposable record
Edit User
No changes detected
Info toast when nothing changed
Not captured yet
Edit User
Update failed
Failure toast or inline destructive alert
Not reachable on a device: Needs a server error, crash, race or code change
Flow diagram
Routine steps
Add or Edit Routine Step
New step order
New steps get max display order + 1 per routine
Not captured yet
Routine Steps Configuration
Order updated
Toast after drag reorder
Needs data: Needs specific backend rows, a role, or a submitted write on a disposable record
Branches and edge cases
Routine Steps Configuration
No steps configured
AM and PM tables with create CTA
Needs data: Needs specific backend rows, a role, or a submitted write on a disposable record
Routine Steps Configuration
Reorder failed
Toast: Failed to update order
Not reachable on a device: Needs a server error, crash, race or code change
Add or Edit Routine Step
Save failed
Toast via mutationErrorMessage
Not reachable on a device: Needs a server error, crash, race or code change
Delete Routine Step
Step in use
Server refuses when products are tagged with the step
Needs data: Needs specific backend rows, a role, or a submitted write on a disposable record
Routine Steps Configuration
Delete blocked
Server: products are assigned to this routine step
Needs data: Needs specific backend rows, a role, or a submitted write on a disposable record
Flow diagram
Screens and states
User Management
dashboard/usersUser Management
Search, filter and administer accounts.
src/app/dashboard/users/page.tsxEntry
- Sidebar Users
- Audit log target user links
- Detail back buttons
Exits
- View → /dashboard/users/id
- Edit → /dashboard/users/id/edit
- Row menu → status, role, delete dialogs
- Bulk edit → drawer
- Export → ExportDialog
States · 8
src/features/user-management/components/user-tables/index.tsx:93src/features/user-management/components/user-tables/index.tsx:105src/features/user-management/components/user-listing.tsx:140src/features/user-management/components/user-listing.tsx:319src/features/user-management/components/user-listing.tsx:180src/features/user-management/components/user-listing.tsx:350src/features/user-management/components/user-listing.tsx:188src/app/dashboard/users/page.tsx:16Change User Status
ChangeUserStatusDialogChange User Status
Confirm suspend or activate of one account.
src/features/user-management/components/user-tables/cell-action.tsx:396Entry
- Row menu Change Status (admin)
Exits
- Confirm → ban or unban
- Cancel
States · 3
src/features/user-management/components/user-tables/cell-action.tsx:124src/features/user-management/components/user-tables/cell-action.tsx:126src/features/user-management/components/user-tables/cell-action.tsx:103Change User Role
ChangeUserRoleDialogChange User Role
Confirm a role change (super_admin only).
src/features/user-management/components/user-tables/cell-action.tsx:433Entry
- Row menu Change Role (super_admin)
Exits
- Confirm → update role
- Cancel
States · 3
src/features/user-management/components/user-tables/cell-action.tsx:157src/features/user-management/components/user-tables/cell-action.tsx:139packages/backend/convex/auth/mutations.ts:2166Delete User
DeleteUserDialogDelete User
Soft delete an account (super_admin in UI).
src/features/user-management/components/user-tables/cell-action.tsx:461Entry
- Row menu Delete (super_admin)
Exits
- Confirm → soft delete
- Cancel
States · 2
src/features/user-management/components/user-tables/cell-action.tsx:187src/features/user-management/components/user-tables/cell-action.tsx:172Permanently Delete User
HardDeleteUserDialogPermanently Delete User
Irreversible delete (super_admin only).
src/features/user-management/components/user-tables/cell-action.tsx:519Entry
- Row menu Permanently Delete
Exits
- Confirm → hard delete
- Cancel
States · 2
src/features/user-management/components/user-tables/cell-action.tsx:217src/features/user-management/components/user-tables/cell-action.tsx:202Restore User
Restore User
Needs data: Needs a user with status deleted
RestoreUserDialogRestore User
Restore a deleted account.
src/features/user-management/components/user-tables/cell-action.tsx:489Entry
- Row menu Restore (status deleted)
Exits
- Confirm → restore
- Cancel
States · 2
src/features/user-management/components/user-tables/cell-action.tsx:249src/features/user-management/components/user-tables/cell-action.tsx:234Bulk Edit
BulkActionsSheetBulk Edit
Apply activate, suspend, restore or delete to up to 500 users.
src/features/user-management/components/bulk-actions-sheet.tsx:130Entry
- Bulk edit button with rows selected
Exits
- Apply → Confirm Bulk Action dialog
- Cancel
States · 4
src/features/user-management/components/bulk-actions-sheet.tsx:158src/features/user-management/components/bulk-actions-sheet.tsx:103src/features/user-management/components/bulk-actions-sheet.tsx:115packages/backend/convex/auth/mutations.ts:2686Confirm Bulk Action
BulkConfirmDialogConfirm Bulk Action
Required confirm for all four bulk actions.
src/features/user-management/components/bulk-actions-sheet.tsx:299Entry
- Apply in Bulk Edit drawer
Exits
- Confirm → bulk update
- Cancel
States · 1
src/features/user-management/components/bulk-actions-sheet.tsx:327User Detail
dashboard/users/[id]User Detail
Read-only 360 view of one account with five tabs.
src/app/dashboard/users/[id]/page.tsxEntry
- Users list View
- Recent Sales link
- Audit log target links
- Loyalty, voucher, stamp rows
Exits
- Back to Users → /dashboard/users
- Edit User → /dashboard/users/id/edit
- Stamp row → /dashboard/orders/id
- Campaign row → /dashboard/loyalty/campaigns/id
States · 13
src/features/user-management/components/user-detail-client.tsx:49packages/backend/convex/auth/queries.ts:812src/features/user-management/components/user-detail-client.tsx:54src/features/user-management/components/sections/campaigns-section.tsx:67src/features/user-management/components/sections/seasonal-section.tsx:54src/features/user-management/components/sections/stamp-history-section.tsx:68src/features/user-management/components/sections/vouchers-held-section.tsx:119src/features/user-management/components/sections/purchases-tab.tsx:158src/features/user-management/components/sections/engagement-tab.tsx:205src/features/user-management/components/sections/security-tab.tsx:19src/features/user-management/components/sections/notifications-tab.tsx:157src/features/user-management/components/sections/admin-actions.tsx:22src/features/user-management/components/sections/integrations-tab.tsx:49Reset campaign progress?
ResetCampaignProgressDialogReset campaign progress?
Reset one user's stamps and position in a campaign.
src/features/user-management/components/sections/campaigns-section.tsx:272Entry
- Campaign row More actions menu
Exits
- Confirm → reset progress
- Cancel
States · 3
src/features/user-management/components/sections/campaigns-section.tsx:136src/features/user-management/components/sections/campaigns-section.tsx:139packages/backend/convex/gamificationLoyalty/mutations.ts:2091Revoke voucher?
RevokeVoucherDialogRevoke voucher?
Delete a voucher held by the user.
src/features/user-management/components/sections/vouchers-held-section.tsx:294Entry
- Held voucher row action
Exits
- Confirm → revoke voucher
- Cancel
States · 3
src/features/user-management/components/sections/vouchers-held-section.tsx:180src/features/user-management/components/sections/vouchers-held-section.tsx:183src/features/user-management/components/sections/vouchers-held-section.tsx:170Stamp History
Stamp History
Needs data: Needs a user with stamps
StampHistorySheetStamp History
Read-only side sheet listing all stamps.
src/features/user-management/components/sections/stamp-history-section.tsx:76Entry
- Loyalty tab Stamp History View all
Exits
- Row → /dashboard/orders/id
States · 1
src/features/user-management/components/sections/stamp-history-section.tsx:68All Vouchers
AllVouchersSheetAll Vouchers
Read-only side sheet listing all held vouchers.
src/features/user-management/components/sections/vouchers-held-section.tsx:131Entry
- Loyalty tab Vouchers Held View all
Exits
- Redeemed row → /dashboard/orders/id
States · 1
src/features/user-management/components/sections/vouchers-held-section.tsx:119Edit User
dashboard/users/[id]/editEdit User
Edit one account's profile, role, status and preferences.
src/app/dashboard/users/[id]/edit/page.tsxEntry
- Users list Edit
- Detail Edit User (admin)
Exits
- Save → /dashboard/users/id
- Cancel → detail (unsaved check)
- Back to Users → /dashboard/users
States · 9
src/features/user-management/components/user-edit-client.tsx:36src/features/user-management/components/user-edit-client.tsx:58src/features/user-management/components/user-edit-client.tsx:40src/features/user-management/components/forms/user-edit-form.tsx:141src/features/user-management/components/forms/user-edit-form.tsx:240src/features/user-management/components/forms/user-edit-form.tsx:87src/features/user-management/components/forms/user-edit-form.tsx:125src/features/user-management/components/forms/user-edit-form.tsx:130src/features/user-management/components/forms/user-edit-form.tsx:722Create New User
dashboard/users/newCreate New User
Explainer page; dashboard does not create users.
src/app/dashboard/users/new/page.tsxEntry
- None found, URL only
Exits
- Back to Users → /dashboard/users
- Manage Existing Users → /dashboard/users
States · 4
src/app/dashboard/users/new/page.tsx:28src/features/user-management/components/forms/user-create-form.tsx:55src/app/dashboard/users/new/page.tsxsrc/features/user-management/components/forms/user-create-form.tsx:25Routine Steps Configuration
dashboard/users/routine-stepsRoutine Steps Configuration
Configure skincare routine steps used by the mobile beauty profile.
src/app/dashboard/users/routine-steps/page.tsxEntry
- Sidebar Users > Routine Steps
Exits
- Add Step → step form dialog
- Row menu Edit, enable, Delete
- Drag handle → reorder
- Active switch → toggle
States · 8
src/app/dashboard/users/routine-steps/page.tsx:207src/app/dashboard/users/routine-steps/page.tsx:226src/app/dashboard/users/routine-steps/_components/routine-table.tsx:128src/app/dashboard/users/routine-steps/_components/all-steps-table.tsx:76src/app/dashboard/users/routine-steps/_components/routine-table.tsx:102src/app/dashboard/users/routine-steps/_components/routine-table.tsx:104src/app/dashboard/users/routine-steps/page.tsx:101packages/backend/convex/beauty/mutations.ts:562Add or Edit Routine Step
StepFormDialogAdd or Edit Routine Step
Create or update one routine step.
src/app/dashboard/users/routine-steps/_components/step-form-dialog.tsx:105Entry
- Add Step button
- Row menu Edit
Exits
- Submit → create or update step
- Cancel
States · 2
src/app/dashboard/users/routine-steps/page.tsx:110src/app/dashboard/users/routine-steps/page.tsxDelete Routine Step
DeleteRoutineStepDialogDelete Routine Step
Confirm deleting a step; may affect tagged products.
src/app/dashboard/users/routine-steps/page.tsx:389Entry
- Row menu Delete
Exits
- Confirm → delete step
- Cancel
States · 1
packages/backend/convex/beauty/mutations.ts:562
















