capitalisation

This commit is contained in:
MaksTinyWorkshop
2026-03-28 12:50:07 +01:00
parent e9c1cb8ff9
commit ef99f2a2ca
6 changed files with 269 additions and 222 deletions

View File

@@ -81,3 +81,55 @@ if (forums.length > 0 || isLoading || paywallRequired) return;
- Ou supprimer le guard et dépendre uniquement du changement de paramètre dans le `useEffect`
- Contexte technique : React Native / Zustand / Expo Router — app-alexandrie 23-03-2026
---
<a id="risque-tabs-name-label-inverses"></a>
## Expo Router — mapping `name`/`label` des tabs inversés sans erreur
### Risques
- `<Tabs.Screen name="x">` route vers `app/(tabs)/x.tsx` — le `title` (label affiché) est totalement indépendant du routage
- Un label "Communauté" sur `name="explore"` affiche `explore.tsx` sans aucune erreur de build ni de lint
### Symptômes
- Le bon label est affiché, mais l'écran affiché est celui d'un boilerplate ou d'un autre module
- Bug invisible jusqu'au test manuel de chaque onglet
### Bonnes pratiques / mitigations
- Lors de tout ajout ou renommage de tab, valider visuellement que chaque label correspond à l'écran attendu
- Convention : aligner le `name` et le nom de fichier avec le wording du label (ex : `name="community"``community.tsx``title="Communauté"`)
- Ajouter un test de smoke de navigation si la structure de tabs est critique
- Contexte technique : Expo Router — app-alexandrie, 25-03-2026
---
<a id="risque-cross-groupe-router-push"></a>
## Expo Router — ne jamais préfixer le groupe dans `router.push`
### Risques
- `router.push('/(auth)/forgot-password')` depuis un écran `(tabs)/` peut échouer silencieusement ou lever une erreur selon la version d'Expo Router
- La résolution des groupes de routes se fait par contexte de navigation — un préfixe de groupe explicite n'est pas un chemin de route valide
### Symptômes
- Navigation vers un écran `(auth)/` qui n'aboutit pas ou lève une erreur au runtime
- Fonctionne dans certaines versions d'Expo Router mais pas d'autres
### Bonnes pratiques / mitigations
```typescript
// ❌ Anti-pattern — préfixe de groupe explicite
router.push('/(auth)/forgot-password');
// ✅ Pattern correct — chemin sans groupe
router.push('/forgot-password' as never);
```
- Règle : les groupes `(auth)`, `(tabs)`, etc. sont des conventions d'organisation de fichiers, pas des segments de route — ne jamais les inclure dans les appels de navigation programmatique
- Contexte technique : Expo Router — app-alexandrie, 25-03-2026