ProjectR Docs
Screen MapDashboard

Support

Dashboard: every screen, state and flow in Support.

2 screens and overlays, 18 states, 1 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

Support triage

Step 1
Support Messages (Web)
Support inbox table
Open a row
Step 2
Wireframe

Support message

Edge

Auto mark read

Opening a new message silently sets read

Not captured yet

Message opens and is marked read
Send reply
Step 3
Wireframe

Support message

Success

Reply sent

Toast once status is replied; email sends async

Needs data: Needs specific backend rows, a role, or a submitted write on a disposable record

Status replied, toast, email goes out async
Status select: Resolved
Step 4
Support message, Resolved is terminal (Web)
Resolved message cannot be reopened

Branches and edge cases

Edgefrom step 1
Wireframe

Support Messages

Edge

Bulk resolve skips

Only replied rows resolve; toast Only replied messages can be resolved

Needs data: Needs specific backend rows, a role, or a submitted write on a disposable record

Select replied rows: Mark resolved
Emptyfrom step 1
Support Messages, No support messages (Web)
Inbox is empty
Gatefrom step 2
Wireframe

Support message

Gate

Reply disabled, no email

Missing or placeholder email disables Send; server refuses too

Needs data: Needs specific backend rows, a role, or a submitted write on a disposable record

Phone only or placeholder email
Errorfrom step 2
Wireframe

Support message

Error

Reply refused

Toast with server message or Reply refused

Needs data: Needs specific backend rows, a role, or a submitted write on a disposable record

Server refuses the reply
Edgefrom step 2
Support message, Device Info card (Web)
Device Info card
Flow diagram

Screens and states

Support Messages

Support Messages (Web)
Screendashboard/support

Support Messages

Inbox of contact messages from the mobile app.

src/app/dashboard/support/page.tsx

Entry

  • Sidebar Support Inbox

Exits

  • Row or View → /dashboard/support/id
  • Mark as read, Mark resolved
  • Export → ExportDialog
  • Bulk Mark resolved

States · 8

Loading
Skeleton table · 20 skeleton rowssrc/features/support/components/support-table.tsx:125
Empty
No support messages · Also when filters match nothingsrc/features/support/components/support-table.tsx:138
Edge
Scan truncated · Alert: scan stopped at its row cap, older messages may be missingsrc/app/dashboard/support/page.tsx:92
Edge
200-row load · Loads 200 rows, table paginates 20 client sidesrc/features/support/components/support-table.tsx:23
Edge
Response time unknown · Stats card shows em dashsrc/features/support/components/support-stats-cards.tsx:132
Edge
Bulk resolve skips · Only replied rows resolve; toast Only replied messages can be resolvedsrc/features/support/components/support-table.tsx:51
Gate
Export disabled for low role · Export gated by hasRole adminsrc/app/dashboard/support/page.tsx:36
Gate
Permission denied · AccessDenied: You need permission to view support messagessrc/app/dashboard/support/page.tsx:55

Captured states

Support Messages, No support messages (Web)
No support messages

Support message

Support message (Web)
Screendashboard/support/[id]

Support message

Read a message, reply by email and move its status.

src/app/dashboard/support/[id]/page.tsx

Entry

  • Support list row

Exits

  • Back → /dashboard/support
  • Send reply → email and status replied
  • Status select → next step

States · 10

Loading
Skeleton · Loading skeletonsrc/app/dashboard/support/[id]/page.tsx:118
Error
Message not found · With back buttonsrc/app/dashboard/support/[id]/page.tsx:130
Edge
Auto mark read · Opening a new message silently sets readsrc/app/dashboard/support/[id]/page.tsx:65
Gate
Reply disabled, no email · Missing or placeholder email disables Send; server refuses toosrc/app/dashboard/support/[id]/page.tsx:232
Success
Reply sent · Toast once status is replied; email sends asyncpackages/backend/convex/support/mutations.ts:241
Error
Reply refused · Toast with server message or Reply refusedsrc/app/dashboard/support/[id]/page.tsx:93
Edge
Email may fail later · Retrier allows 3 failures after UI already said successpackages/backend/convex/support/mutations.ts:241
Edge
Resolved is terminal · Status select shows only next step; resolved is plain textsrc/app/dashboard/support/[id]/page.tsx:284
Edge
Device Info card · Only when metadata existssrc/app/dashboard/support/[id]/page.tsx:320
Gate
Permission denied · AccessDenied: You need permission to view support message detailssrc/app/dashboard/support/[id]/page.tsx:143

Captured states

Support message, Resolved is terminal (Web)
Resolved is terminal
Support message, Device Info card (Web)
Device Info card

On this page