Skip to content

[FE-U-03] ContactListPage + PublicProfilePage + NotificationPreferencesPage + AccountSettingsPage #420

Description

@K0lux

section: Feature User — Pages | prio: P1 | est: 6h | deps: FE-U-01

Pourquoi

Ces pages complètent lexpérience utilisateur. AccountSettings inclut la gestion des sessions actives et la suppression de compte avec vérifications multi-steps.

Acceptance Criteria

  • ContactListPage : onglets Tous/En attente (badge count)/Acceptés/Bloqués, infinite scroll, search parmi contacts acceptés, card avec avatar+username+alias+badge "Admin compteur", actions contextuelles selon statut, SocialGate si !isSocialReady (banner doux), empty states, modal "Ajouter contact" par username
  • PublicProfilePage route /u/:username : avatar + display_name + @username + bio + badges rôles publics (SELLER/SERVICE_PROVIDER uniquement) + membre depuis (année) + bouton "Ajouter en contact" (SocialGate), si propre profil → "Modifier mon profil", SEO Open Graph meta tags
  • NotificationPreferencesPage : IN_APP toggle désactivé + tooltip, EMAIL toggle (grayed si pas email + message), SMS toggle + warning coût, WhatsApp badge "Bientôt", fréquences par type (alertes critiques readonly), langue + timezone searchable, auto-save debounce 800ms
  • AccountSettingsPage : section sécurité (changement MDP délègue AUTH, lier/délier Google), sessions actives liste (device/IP/date/bouton révoquer), activité récente (5 derniers événements), danger zone (suppression multi-step : vérification prérequis → mot de passe → checkbox → confirmation)
  • Toutes les pages : responsive mobile-first, dark mode (CSS vars Quantify brand)

Fichiers

src/features/user/ui/
├── ContactListPage.tsx + ContactCard.tsx + AddContactModal.tsx
├── PublicProfilePage.tsx
├── NotificationPreferencesPage.tsx
└── AccountSettingsPage.tsx + ActiveSessionsList.tsx + DeleteAccountDialog.tsx

Scale

Infinite scroll contacts = chargement progressif. PublicProfile cache 5min = supporte la charge marketplace.

Metadata

Metadata

Assignees

No one assigned

    Labels

    frontendFrontend React/TypeScriptuxUser experience

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions