Skip to content

Construire mon profil (E-09), Modifier le profil, Réglages et suppression de compte #387

Closed

Description

@PaulThiberville

Contexte

Epic : #6
Maquette : E-09 · validée le 2026-09-24 (D-023, D-025, D-028) ; « Sur le terrain » validée le 2026-09-26 (D-056, D-058) ; Premium revu par D-073 et D-074
Ecrans › E-09 · Compte-et-Monetisation · Analytics › Action · E-09 · D-023, D-025, D-028, D-030, D-046, D-056, D-058, D-073, D-074
Issu du découpage de #38 (décision de Paul du 2026-10-13). Dépend de l'API du profil (GET/PATCH /me, /config) et de la session de l'app, créée par #386. Les pages tertiaires des Réglages (E-19) sont portées par #189, le comportement de DELETE /me côté API par #128.

Comportement attendu

  • E-09 « Mon profil » tel que les autres le voient (D-023) : photo, prénom, bio, quartier, anecdotes, parcours à la une, badge de certification et sheet « Créateur certifié », section « Sur le terrain » (nombre de lieux vérifiés, absente à zéro, verifiedPlaces de /users/:id/profile, D-056), encart Widoo Premium sans la création et profil vide revus (D-073), profil masqué, profil hors connexion (D-025).
  • « Modifier le profil » : bio, quartier, anecdotes (3 au plus, à partir des questions actives de /config), parcours à la une (3 au plus, modifiables seulement ici), réordonnancement par « Monter » et « Descendre » ; enregistrement en un PATCH /me ; toast d'enregistrement ; alerte d'abandon des modifications.
  • Page Réglages, ouverte par la roue dentée : e-mail (n'apparaît que là), préférences de notification, langue, liens légaux, interrupteur « Profil public », section Abonnement ou Premium pour un abonné (« Prolonger » sous le libellé, D-074), déconnexion, suppression de compte, version. Les pages ouvertes depuis ces lignes relèvent de Implémenter les pages tertiaires des Réglages (E-19) et la mise à jour obligatoire (E-20) #189.
  • Suppression de compte sans choix (D-025) : alerte système de confirmation, DELETE /me, toast, retour à l'état anonyme.
  • Mouvement (D-030) : M-03 pour les pages poussées, M-06 pour les toasts, vibrations des actions clés.
  • Composant toast (D-046, repris de Appliquer la règle du texte agrandi (D-046) dans les composants de base #174) et barre du haut des pages secondaires, composants de base dans apps/mobile/src/ui.

Critères d'acceptation

  • Modifier le profil enregistre bio, quartier, anecdotes et parcours à la une, et mon profil affiché reflète le changement
  • Suppression de compte effective et l'app revient à l'état anonyme
  • L'e-mail n'apparaît que dans les Réglages
  • Tous les textes visibles sont au vouvoiement
  • États de la planche 2 de E-09 conformes à Ecrans › E-09 : profil public, Abonnement, profil masqué, suppression, hors connexion, toasts, alerte d'abandon
  • Captures à 150 % de texte système de E-09, Modifier le profil et Réglages dans la PR, conformes à la planche 3 (et à D-058, D-074) : lignes des Réglages en flexWrap, la valeur passe sous le libellé, l'e-mail n'est jamais coupé ; encart Premium à hauteur libre ; interrupteur actif sur toute la ligne
  • Libellés VoiceOver et TalkBack de E-09 conformes à la planche 3
  • Barre du haut des pages secondaires (Modifier le profil, Réglages, Supprimer mon compte) et action du toast : composants de base dans apps/mobile/src/ui, texte en <Text isDense> (plafond 1,3, mappings.accessibility.denseComponents), titre centré sur deux lignes. Aucun plafond posé dans l'écran
  • Toast plafonné à 1,3 en entier (D-046) : titre, sous-titre et action passent isDense au composant Text ; au plus grand réglage standard (×1,353), aucun toast ne déborde ; test unitaire
  • Aucun texte avec opacité ; compteur des chips d'ambiance en pleine couleur
  • Durées, courbes et vibrations lues dans mappings.motion, aucune valeur en dur ; « Réduire les animations » respecté (D-030)
  • Émet profile_updated avec fields[] (champs modifiés parmi photo, bio, neighborhood, anecdotes, featured) à l'enregistrement de « Modifier le profil »
  • Émet certified_info_opened avec creator_id et own: true à l'ouverture de la sheet « Créateur certifié » depuis mon profil

Notes techniques

Activity

  1. added this to the v0.3 milestone on Oct 13, 2026
  2. added
    status:readySpec complète, prêt à coder
    and removed
    status:blockedBloqué, voir commentaire ⛔
    on Oct 13, 2026
  3. added
    status:blockedBloqué, voir commentaire ⛔
    and removed
    status:readySpec complète, prêt à coder
    on Oct 13, 2026
  4. PaulThiberville commented on Oct 14, 2026

    @PaulThiberville
    CollaboratorAuthor

    🔨 Démarrage — plan :

    Branche issue/387-my-profile-settings, partie de main (la PR #399 de #386 vient d'être fusionnée). Une seule PR Fixes #387, niveau 1, sans fusion.

    1. Composants de base (apps/mobile/src/ui) : le toast reçoit un sous-titre et une action (« Réessayer »). Tout le toast est en isDense (plafond 1,3), il vibre en cas de succès ou d'erreur (mappings.motion.haptics) et il se pose au-dessus de la barre d'onglets. J'ajoute un test unitaire du plafond. Nouveaux composants : la barre du haut des pages secondaires (retour ou Annuler / Enregistrer, titre centré sur deux lignes, en isDense) et les lignes des Réglages (libellé et valeur en flexWrap, interrupteur actif sur toute la ligne).
    2. Données (apps/mobile/src/profile) : GET /me gardé sur le téléphone pour l'état hors connexion, effacé à la déconnexion. PATCH /me en un seul appel, DELETE /me. Une logique testée calcule le brouillon, les champs modifiés (profile_updated.fields[]), les « Monter » / « Descendre » et ce qui manque pour la certification.
    3. Écrans : E-09 avec ses états (sans compte vers E-10, profil vide ou partiel, certifié ou non, sheet « Créateur certifié » avec certified_info_opened, profil masqué, hors connexion). Puis Modifier le profil (prénom, bio, quartier, anecdotes à partir de /config, à la une), Réglages et Supprimer mon compte (alerte système, DELETE /me, toast, retour à l'état anonyme).

    Limites du contrat livré par #385, à confirmer en route : GET /me ne donne que l'id et le titre des parcours à la une. Il n'existe aucun endpoint qui liste les parcours publiés de l'utilisateur, ni ses chiffres, ni verifiedPlaces. « Choisir un parcours », « Tous mes parcours » et « Sur le terrain » ne peuvent donc pas être alimentés. Je le signalerai dans l'Inbox.

  5. added
    status:readySpec complète, prêt à coder
    and removed
    status:blockedBloqué, voir commentaire ⛔
    on Oct 14, 2026
  6. PaulThiberville commented on Oct 14, 2026

    @PaulThiberville
    CollaboratorAuthor

    📋 Revue MANAGER du 2026-10-14 après la fusion de la PR #419 (11:39Z, main = e8e8a61, niveau 1). Status du Project : À déployer. Terminés attend la recette de Paul sur build preview avec un vrai compte (voir Notes techniques : la recette de la PR s'est faite avec une session simulée et une API locale).

    Critères tenus en partie, et leur cause (données absentes de l'API, d'après la section Limites de la PR) :

    Autres points de la PR, suivis ailleurs

  7. PaulThiberville commented on Oct 15, 2026

    @PaulThiberville
    CollaboratorAuthor

    Recette partielle sur appareil, 2026-10-15 : Paul, build preview Android EAS 858b93ac (main 1a4845d), Redmi Note 9 sous MIUI 12.

    • Vérifié ce matin : connexion Google depuis « Programmer ». Confirmée par PostHog (auth_prompted puis auth_completed avec google) et par l'API (GET /me en 200).
    • Défaut trouvé pendant la modification du profil : quand un champ texte (prénom, bio ou quartier) a le focus, « Ajouter une anecdote » ouvre la sheet de choix de la question sous le clavier, qui reste ouvert ; la modale de réponse est elle aussi cachée par le clavier. Suivi dans Fermer le clavier avant d'ouvrir le choix de question d'une anecdote (E-09, Android) #474.
    • La suite de la recette est en cours. Les autres critères ne sont pas encore vérifiés sur appareil.
  8. PaulThiberville commented on Oct 15, 2026

    @PaulThiberville
    CollaboratorAuthor

    Recette sur appareil, déclarée par Paul en session le 2026-10-15, consignée par MANAGER. Build preview EAS 858b93ac (main 1a4845d), Redmi Note 9 (Android), API de staging à jour avec la PR #461.

    OK :

    • « Modifier le profil » : modification enregistrée et reflétée sur le profil ;
    • e-mail visible dans les Réglages ;
    • texte système à 150 % et TalkBack ;
    • langue.

    Bugs trouvés pendant cette recette :

  9. PaulThiberville commented on Oct 15, 2026

    @PaulThiberville
    CollaboratorAuthor

    Recette sur appareil, déclarée par Paul en session le 2026-10-15 vers 13:40 (Paris), consignée par MANAGER. Build preview EAS 98b537be (main 4b766c5), Redmi Note 9 (Android), API de staging. Paul : « tout est bon ».

    Status du Project : Terminés.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions