Profile Tab + Detail Screens
profile/profile_tab_page.dart · profile.dart · profile_details.dart · login_required_profile.dart
Overview
Four screens forming the profile surface. ProfileTabPage is the bottom-nav tab (or LoginRequiredProfile when guest). ProfilePage is the in-shell menu screen. ProfileDetailsPage renders the full info card. SeavenProfileHeader and InstagramProfileHeader pick the layout per role.
User Flow
- ProfileTabPage decides login vs not-login based on authStateProvider.
- LoginRequiredProfile shows the login/register CTAs for guests.
- ProfilePage shows the menu of actions (manage profile, settings, become seller, devenir prestataire, logout).
- ProfileDetailsPage watches personalInfoProvider and renders the cards (info, addresses, etc.).
- BecomeSellerBanner appears for clients only — links to /devenir-prestataire.
Cases & Edge Cases
- MetiersBottomSheet (seller-only) lets a seller pick or edit their métiers; consumed by currentSellerTradesProvider.
- Avatar editing happens elsewhere (ManageProfileScreen) — the headers are read-only.
- Pull-to-refresh on the tab triggers personalInfoNotifier.refreshPersonalInfo.
Code References
- lib/src/features/shared/profile/profile_tab_page.dart
- lib/src/features/shared/profile/profile.dart
- lib/src/features/shared/profile/profile_details.dart
- lib/src/features/shared/profile/login_required_profile.dart
- lib/src/features/shared/profile/widgets/seaven_profile_header.dart
- lib/src/features/shared/profile/widgets/instagram_profile_header.dart
API Calls
Empty — fill this in later. Open the manifest and add content here.
Notes
Two header variants (Seaven and Instagram) are an A/B-style holdover from a redesign sprint — only one is currently shown in production.