User Interface high complexity mobile
2
Dependencies
0
Dependents
1
Entities
0
Integrations

Description

Form screen for editing personal profile data including name, contact details, profile photo, and language preferences. State is managed by ProfileEditNotifier (Riverpod, no codegen) tracking dirty state and validating before submission. Persists via PATCH /api/v1/users/{id} with optimistic local update and automatic rollback on failure.

Feature: Profile Data & Settings

profile-edit-screen

Responsibilities

  • Render editable form fields for all mutable profile attributes with adequate touch targets
  • Track form dirty state via ProfileEditNotifier and disable Save when unchanged
  • Validate fields (required, format, length) and announce errors via live region for screen-reader compatibility
  • Apply optimistic update to local Drift users table and enqueue PATCH mutation in offline outbox when offline
  • Trigger profile photo selection, cropping, and upload through Profile Service

Interfaces

build(context): Widget
onSave(): Future<void>
onCancel(): void
onPhotoTap(): Future<void>
onFieldChanged(field: String, value: dynamic): void

Relationships

Dependencies (2)

Components this component depends on

Related Data Entities (1)

Data entities managed by this component