Poster (deepBlue) and Contractor (terracotta) notification centers, preferences, push previews, in-app toasts, and deep links. 8 screens.
PosterNotifications screen with filter tabs, grouped by date. Uses useQuery(api.poster.notifications.list)
ContractorNotifications with SegmentedControl (All/Unread/Important). Uses useQuery(api.contractor.notifications.list)
You'll be notified when there's activity on your jobs.
Empty component with IconCircle hero + hint chips showing notification types.
PosterNotificationSettings with per-channel toggles. useQuery(api.poster.settings.getNotificationPreferences)
ContractorNotificationSettings with 3-channel toggles (push/email/SMS). useQuery(api.contractor.settings.getNotificationPreferences)
iOS lock screen push notifications via Expo Push Notifications. registerPushToken mutation stores FCM/APNs token.
In-app notification patterns: top banner (success), floating card (new bid), bottom toast (message), badge counts on tab bar.
Notification tap routes to destination screen via data.actionUrl. handleNotificationPress checks type and routes accordingly.