Screen components
Header
Displays your avatar, a personalized welcome greeting with your first name, and the DOSS logo.
Balance
Shows your current wallet balance with a show/hide toggle (eye icon), a notification bell, and a government alert icon.
Quick actions
Two shortcut cards: My Identity (navigates to identity verification) and Scan & Pay (opens the QR scanner).
Transaction history
Recent transactions grouped by date, with a View All link to the full transaction history screen.
Balance display
Your balance is hidden by default. Tap the eye icon to toggle visibility.- Hidden state — balance shown as
******** - Visible state — balance shown as
$0.00(two decimal places)
wallet_dashboard.balance in the dashboard API response and is stored in the global wallet state via useWallet.
Notification icons
Two icons appear in the top-right of the balance section:| Icon | Destination |
|---|---|
| Bell (notifications) | DOSS_NOTIFICATIONS screen |
| Government alert | ALERT_NOTIFICATIONS screen |
Quick actions
My Identity
Opens the Identity Verification screen where you can view your QR code and verified profile.
Scan & Pay
Opens the camera to scan a merchant or user QR code and initiate a payment.
Recent transactions
Transactions are grouped by date using theformatTransactionDate helper. Each group shows the date label followed by its transaction items.
Transactions with a
null cart are automatically filtered out and will not appear in the list.Tapping a transaction
The behavior when tapping a transaction depends on its status:Awaiting— navigates to thePAYMENT_REQUESTEDscreen, passing through the amount, timestamp, merchant image, store name, cashier name, and transaction UUID.- Any other status — opens a
TransactionModaloverlay with full transaction details.
View all
Tapping View All navigates to theTRANSACTION_HISTORY screen, which provides search and pagination over your complete transaction history.
Data fetching
The dashboard fetches data from a single endpoint on mount and on pull-to-refresh:| Key | Used by |
|---|---|
wallet_dashboard | Balance display, stored in useWallet global state |
wallets | Stored in useWallet global state |
transactions | Recent transaction list |
Pull-to-refresh
Pull down anywhere on the dashboard to trigger a refresh. The spinner uses the app’s primary color. The dashboard also loads fresh profile data (GET /v2/profile) in parallel with the dashboard request.