User Interface low complexity mobile
1
Dependencies
0
Dependents
0
Entities
0
Integrations

Description

Settings screen allowing peer mentors to configure which scenario-based notification types they wish to receive. Supports per-scenario opt-out so users retain control without disabling all notifications. Follows WCAG 2.2 AA contrast and touch target requirements.

Feature: Scenario-Based Engagement Push Notifications

notification-preferences-screen

Summaries

The Notification Preferences Screen empowers peer mentors to take control of which scenario-based alerts they receive, directly reducing notification fatigue and churn risk. Users who feel overwhelmed by notifications they cannot customise are significantly more likely to disable all alerts or disengage from the platform entirely — both outcomes that undermine the programme's engagement goals. By offering per-scenario opt-out granularity, this screen preserves the value of high-signal notifications while respecting individual working styles. Its WCAG 2.2 AA compliance also ensures accessibility for all users, reducing legal exposure and broadening the platform's reach to diverse peer mentor populations.

The Notification Preferences Screen is a low-complexity mobile UI component with a single dependency on the notification-preferences-repository. Development effort is primarily in UI layout, toggle control state management, and save confirmation feedback rather than business logic. Key delivery risk is coordination with the notification-preferences-repository, which must be ready before this screen can be wired end-to-end. Accessibility compliance (WCAG 2.2 AA contrast and touch targets) must be verified via automated tooling and manual screen-reader testing on both iOS (VoiceOver) and Android (TalkBack).

Plan for a design review cycle to confirm toggle labelling is sufficiently descriptive for all scenario types.

The Notification Preferences Screen is a mobile UI component backed by the `notification_preference` data model. It exposes five interfaces: `loadPreferences(userId)` fetches stored per-scenario opt-out flags from the notification-preferences-repository on mount; `toggleScenarioOptOut(scenarioType, enabled)` updates local state; `savePreferences()` persists the full preference set to the backend; `displaySaveConfirmation()` shows an accessible success toast; and `resetToDefaults()` clears all opt-outs. State management should hold a dirty flag to gate the save action. Each toggle must have an accessible label and description string per scenario type, served from a static configuration map.

All touch targets must meet 44×44pt minimum. Integration point is exclusively the notification-preferences-repository — no direct Supabase calls from this screen.

Responsibilities

  • Display all available scenario notification types with toggle controls
  • Persist user preference changes to backend
  • Provide accessible labels and descriptions for each scenario type

Interfaces

loadPreferences(userId)
toggleScenarioOptOut(scenarioType, enabled)
savePreferences()
displaySaveConfirmation()
resetToDefaults()

Relationships

Dependencies (1)

Components this component depends on