Encadré d'incitation pour la configuration des horaires
Description
Cette fonctionnalité ajoute un encadré d'incitation qui s'affiche automatiquement dans les pages de calendrier lorsque les horaires ne sont pas correctement configurés. L'encadré encourage l'utilisateur à configurer ses horaires d'ouverture pour une meilleure expérience.
Composants créés
1. Widget HorairesSetupCard
Fichier: lib/core/widgets/horaires_setup_card.dart
Un widget réutilisable qui affiche un encadré d'incitation élégant avec :
- Design attrayant avec dégradé orange/jaune
- Icône d'horloge
- Message explicatif
- Bouton "Configurer les horaires" qui redirige vers les paramètres
- Bouton "Plus tard" pour masquer temporairement l'encadré
- Bouton de fermeture (optionnel)
2. Utilitaires HorairesUtils
Fichier: lib/core/utils/horaires_utils.dart
Classe utilitaire avec des méthodes statiques pour :
areHorairesConfigured(): Vérifie si les horaires sont correctement configurésgetNombreJoursNonConfigures(): Retourne le nombre de jours non configurésgetJoursNonConfigures(): Retourne la liste des jours non configurésisJourConfigure(): Vérifie si un jour spécifique est configuré
Intégration
L'encadré a été intégré dans toutes les pages de calendrier :
- CalendarPage (
lib/features/calendar/presentation/pages/calendar_page.dart) - ElegantCalendarPage (
lib/features/calendar/presentation/pages/elegant_calendar_page.dart) - LinearCalendarPage (
lib/features/calendar/presentation/pages/linear_calendar_page.dart)
Logique de vérification
Un horaire est considéré comme configuré si :
- Il y a au moins 7 jours (tous les jours de la semaine)
- Chaque jour a soit :
- Des horaires définis (heureDebut ET heureFin)
- OU est marqué comme jour de repos (isJourOff = true)
Utilisation
// Dans n'importe quelle page
HorairesSetupCard(
horaires: _horaires,
onDismiss: () {
// Action optionnelle quand l'utilisateur ferme l'encadré
setState(() {});
},
)
Test
Un fichier de test est disponible : test_horaires_setup.dart
Pour tester :
flutter run test_horaires_setup.dart
Personnalisation
L'encadré peut être personnalisé en modifiant :
- Les couleurs dans
HorairesSetupCard - Le message d'incitation
- L'action du bouton "Configurer les horaires"
- La logique de vérification dans
HorairesUtils
Avantages
- UX améliorée : L'utilisateur est guidé pour configurer ses horaires
- Non intrusif : L'encadré disparaît automatiquement une fois configuré
- Réutilisable : Peut être utilisé dans n'importe quelle page
- Flexible : Permet de masquer temporairement l'encadré
- Cohérent : Même design sur toutes les pages de calendrier