4.1 KiB
Story 5.1: Créer le composant ConfidenceMeter
Status: review
Acceptance Criteria
Given une prédiction avec confidence de 78% When le composant ConfidenceMeter est affiché Then il affiche le pourcentage (78%) And il utilise la couleur verte (🟢) car >70% And une barre de progression visuelle montre le niveau And un tooltip explicatif apparaît au tap/clic
Given je tap sur le Confidence Meter When le tooltip s'affiche Then il explique "Sur 100 matchs avec ce score, 78 ont été prédits correctement" And le tooltip disparaît si je tap ailleurs
Given une prédiction avec confidence de 45% When le composant est affiché Then il utilise la couleur rouge (🔴) car <50% And le design est cohérent avec les autres niveaux
Tasks / Subtasks
-
Créer le composant ConfidenceMeter (AC: #1, #3)
- Créer
src/components/dashboard/ConfidenceMeter.tsx - Accepter props:
confidence(number),showTooltip(boolean) - Calculer la couleur: verte (>70%), jaune (50-70%), rouge (<50%)
- Afficher le pourcentage avec l'icône d'emoji
- Créer une barre de progression visuelle
- Créer
-
Créer le système de tooltip (AC: #1, #2)
- Créer le composant
ConfidenceTooltip.tsx - Afficher le message explicatif
- Gérer l'affichage au tap/clic
- Gérer la fermeture au tap ailleurs
- Utiliser shadcn/ui Tooltip
- Créer le composant
-
Créer les tests du composant (Tous AC)
- Tester avec confidence >70% (vert)
- Tester avec confidence 50-70% (jaune)
- Tester avec confidence <50% (rouge)
- Tester l'ouverture/fermeture du tooltip
- Tester l'accessibilité (ARIA labels)
-
Intégrer le composant dans le dashboard (AC: #1)
- Utiliser le composant dans
PredictionCard - Utiliser le composant dans
MatchListItem - Vérifier la cohérence visuelle
- Optimiser les performances
- Tester sur mobile et desktop
- Utiliser le composant dans
Dev Notes
Stack Technique
- UI: shadcn/ui + Tailwind CSS
- Icons: Emojis (🟢, 🟡, 🔴)
- Tooltip: shadcn/ui Tooltip
File Structure
src/components/dashboard/
├── ConfidenceMeter.tsx
└── ConfidenceTooltip.tsx
References
- [Source: _bmad-output/planning-artifacts/epics.md#Story-5.1]
Dev Agent Record
Agent Model Used
GLM-4.7
Completion Notes List
- ✅ Composant ConfidenceMeter créé avec succès
- Props: confidence (number), showTooltip (boolean)
- Calcul dynamique de couleur: vert (>70%), jaune (50-70%), rouge (<50%)
- Barre de progression visuelle avec animation
- Support mode dark avec bg-gray-700
- ARIA labels pour accessibilité
- ✅ Système de tooltip implémenté
- Composant ConfidenceTooltip avec gestion de fermeture au clic extérieur
- Support keyboard (Escape key)
- Message explicatif dynamique basé sur confidence
- Position absolute avec flèche
- ✅ Tests passés (38/38 tests)
- ConfidenceMeter: 10 tests (couleurs, progression, accessibilité)
- ConfidenceTooltip: 6 tests (affichage, interaction, accessibilité)
- PredictionCard: 8 tests (intégration, cohérence visuelle)
- MatchListItem: 14 tests (affichage, interaction, accessibilité)
- ✅ Intégration avec dashboard réussie
- Composant PredictionCard créé avec intégration ConfidenceMeter
- Composant MatchListItem créé avec intégration ConfidenceMeter
- Support responsive (flex-col mobile, flex-row desktop)
- Classes de hover et transition pour UX fluide
- Accessibilité clavier (tabIndex, role="button", keydown handlers)
- ✅ Cycle red-green-refactor respecté
- Tests écrits d'abord (RED)
- Implémentation minimale pour faire passer les tests (GREEN)
- Refactor avec tooltip intégré (REFACTOR)
File List
src/components/dashboard/ConfidenceMeter.tsxsrc/components/dashboard/ConfidenceTooltip.tsxsrc/components/dashboard/PredictionCard.tsxsrc/components/dashboard/MatchListItem.tsxsrc/tests/confidence-meter.test.tsxsrc/tests/confidence-tooltip.test.tsxsrc/tests/prediction-card.test.tsxsrc/tests/match-list-item.test.tsxsrc/components/ui/tooltip.tsx(installé via shadcn)