Vue d’ensemble
Kit’Asso utilise des patterns cohérents pour structurer le code de manière prévisible et maintenable. Ce guide documente les 4 patterns principaux du projet.Pattern 1 : Architecture des Modals
Structure Container/Form/Preview/Hook
Chaque modal complexe suit cette organisation :Exemple : ToolModal
1. Container (index.tsx)
- Orchestration (form vs preview)
- Lazy loading des composants lourds
- Gestion des états de chargement
- Routing du modal (ouverture/fermeture)
2. Form Component (ToolForm.tsx)
- Validation avec Zod
- Gestion des inputs
- Affichage des erreurs
- UI du formulaire uniquement
3. Hook métier (useToolModal.ts)
- Chargement des données
- Appels API
- Gestion des erreurs
- Business logic
4. Types (types.ts)
Avantages du pattern
✅ Separation of Concerns : UI, logique, data séparés✅ Testabilité : Chaque partie testable indépendamment
✅ Réutilisabilité : Form peut être utilisé ailleurs
✅ Performance : Lazy loading des composants lourds
✅ Maintenabilité : Facile à comprendre et modifier
Pattern 2 : Forms avec React Hook Form + Zod
Setup standard
Validation complexe
Validation asynchrone
Pattern 3 : Custom Hooks
Hook de données (useAppData)
Hook de logique métier (useFavorites)
Hook avec debounce (useToolFilters)
Pattern 4 : Routes & Navigation
React Router v6 setup
Protected Routes
Navigation avec params
Checklist patterns
Avant de créer un nouveau composant complexe :Modal
- Container avec lazy loading
- Form séparé avec React Hook Form + Zod
- Hook métier avec logique isolée
- Types définis dans types.ts
- Preview component si besoin
Hook custom
- Nom commence par
use - Return objet avec noms explicites
- Cleanup dans useEffect si nécessaire
- Types de retour explicites
- Documenté avec JSDoc
Form
- Schema Zod défini
- Validation côté client
- Gestion erreurs affichée
- Loading state sur submit
- Accessible (labels, ARIA)
Route
- Lazy loading si pages lourdes
- Protected si nécessite auth
- Error boundary
- Loading state
- Meta tags SEO
