ajout patterns

This commit is contained in:
MaksTinyWorkshop
2026-03-12 17:16:05 +01:00
parent 39067b153a
commit 1ac757558b
6 changed files with 559 additions and 478 deletions

View File

@@ -7,7 +7,7 @@ Ce fichier recense des risques front-end susceptibles de provoquer :
- dette technique rapide,
- régressions UX/perf/a11y.
Dernière mise à jour : 10-03-2026
Dernière mise à jour : 12-03-2026
---
@@ -32,6 +32,7 @@ Dernière mise à jour : 10-03-2026
- [Catch silencieux — erreur inconnue sans feedback utilisateur](#risque-catch-silencieux)
- [Auto-reset dun état dégradé sur toute réponse 2xx](#risque-auto-reset-etat-degrade)
- [Refresh store en fire-and-forget après mutation](#risque-refresh-store-fire-and-forget)
- [Loading infini sur écran gated par droits distants](#risque-loading-infini-ecran-gated)
---
@@ -255,3 +256,28 @@ Dernière mise à jour : 10-03-2026
- Gestion derreur dédiée sur la phase de resynchronisation
- Nutiliser le fire-and-forget que pour un effet secondaire réellement non bloquant
- Contexte technique : React Native / Expo — 10-03-2026
---
<a id="risque-loading-infini-ecran-gated"></a>
## Loading infini sur écran gated par droits distants
### Risques
- Un écran protégé reste bloqué dans un faux `loading` après une erreur de chargement des entitlements
- Un effet relance automatiquement la récupération en boucle sans action utilisateur
- Lutilisateur ne voit ni état derreur ni issue de sortie claire
### Symptômes
- Spinner infini sur un écran soumis à permissions distantes
- `entitlements` ou autorisations laissés à `null` après erreur
- `useEffect` ou logique dentrée qui retrigger le fetch à chaque rendu
### Bonnes pratiques / mitigations
- Distinguer explicitement `loading`, `error`, `ready`
- Ne pas réutiliser `null` comme état ambigu "pas encore chargé" et "chargement en erreur"
- Bloquer les retries automatiques en boucle après erreur
- Réautoriser un retry seulement via action utilisateur explicite ou nouvelle condition dentrée
- Contexte technique : React Native / Expo / store dentitlements — 10-03-2026