Aller au contenu principal

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és
  • getNombreJoursNonConfigures() : Retourne le nombre de jours non configurés
  • getJoursNonConfigures() : Retourne la liste des jours non configurés
  • isJourConfigure() : Vérifie si un jour spécifique est configuré

Intégration

L'encadré a été intégré dans toutes les pages de calendrier :

  1. CalendarPage (lib/features/calendar/presentation/pages/calendar_page.dart)
  2. ElegantCalendarPage (lib/features/calendar/presentation/pages/elegant_calendar_page.dart)
  3. 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

  1. UX améliorée : L'utilisateur est guidé pour configurer ses horaires
  2. Non intrusif : L'encadré disparaît automatiquement une fois configuré
  3. Réutilisable : Peut être utilisé dans n'importe quelle page
  4. Flexible : Permet de masquer temporairement l'encadré
  5. Cohérent : Même design sur toutes les pages de calendrier