feat: Avancée majeure parcours inscription parent et refactorisation widgets UI

Ce commit comprend plusieurs améliorations significatives :

Inscription Parent - Étape 5 (Récapitulatif) :
- Initialisation de l'écran pour l'étape 5/5 du parcours d'inscription parent.
- Mise en place de la structure de base de l'écran de récapitulatif (titre, fond, bouton de soumission initial, modale de confirmation).
- Intégration de la navigation vers l'étape 5 depuis l'étape 4, incluant le passage (actuellement factice) des données d'inscription.
- Correction des erreurs de navigation et de typage liées à l'introduction de `PlaceholderRegistrationData` pour cette nouvelle étape.

Refactorisation des Widgets UI :
- `CustomAppTextField` :
    - Évolution majeure pour supporter différents styles de fond (beige, lavande, jaune) via un nouvel enum `CustomAppTextFieldStyle`.
    - Les images de fond pour les styles lavande et jaune (`input_field_lavande.png`, `input_field_jaune.png`) ont été renommées et sont maintenant utilisées.
    - Mise à jour de l'écran de login pour utiliser ce `CustomAppTextField` stylisé, remplaçant l'ancien widget privé `_ImageTextField`.
    - Réintégration des paramètres `isRequired`, `enabled`, `readOnly`, `onTap`, et `suffixIcon` qui avaient été omis lors d'une refactorisation précédente, assurant la compatibilité avec l'étape 3.
- `ImageButton` :
    - Extraction du widget privé `_ImageButton` de l'écran de login en un widget public `ImageButton` (dans `widgets/image_button.dart`) pour une réutilisation globale.
    - Mise à jour de l'écran de login pour utiliser ce nouveau widget public.
    - Utilisation du nouveau `ImageButton` pour le bouton "Soumettre ma demande" sur l'écran de l'étape 5.

Corrections :
- Correction d'une erreur de `RenderFlex overflowed` dans la carte enfant (`_ChildCardWidget`) de l'étape 3 de l'inscription parent, en ajustant les espacements internes.
- Résolution de diverses erreurs de compilation qui sont apparues pendant ces refactorisations.
This commit is contained in:
Julien Martin
2025-05-07 17:43:07 +02:00
parent 0772f83369
commit acb602643a
10 changed files with 336 additions and 226 deletions
@@ -403,7 +403,7 @@ class _ChildCardWidget extends StatelessWidget {
),
),
),
const SizedBox(height: 10),
const SizedBox(height: 5),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
@@ -411,30 +411,30 @@ class _ChildCardWidget extends StatelessWidget {
Switch(value: childData.isUnbornChild, onChanged: onToggleIsUnborn, activeColor: Theme.of(context).primaryColor),
],
),
const SizedBox(height: 15),
CustomAppTextField( // Utilisation du nouveau widget
const SizedBox(height: 8),
CustomAppTextField(
controller: childData.firstNameController,
label: 'Prénom',
hintText: childData.isUnbornChild ? 'Prénom (optionnel)' : 'Prénom de l\'enfant',
labelText: 'Prénom',
hintText: 'Facultatif si à naître',
isRequired: !childData.isUnbornChild,
),
const SizedBox(height: 10),
CustomAppTextField( // Utilisation du nouveau widget
const SizedBox(height: 5),
CustomAppTextField(
controller: childData.lastNameController,
label: 'Nom',
labelText: 'Nom',
hintText: 'Nom de l\'enfant',
enabled: true,
),
const SizedBox(height: 10),
CustomAppTextField( // Utilisation du nouveau widget
const SizedBox(height: 8),
CustomAppTextField(
controller: childData.dobController,
label: childData.isUnbornChild ? 'Date prévisionnelle de naissance' : 'Date de naissance',
labelText: childData.isUnbornChild ? 'Date prévisionnelle de naissance' : 'Date de naissance',
hintText: 'JJ/MM/AAAA',
readOnly: true,
onTap: onDateSelect,
suffixIcon: Icons.calendar_today,
),
const SizedBox(height: 18),
const SizedBox(height: 10),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@@ -443,7 +443,7 @@ class _ChildCardWidget extends StatelessWidget {
value: childData.photoConsent,
onChanged: onTogglePhotoConsent,
),
const SizedBox(height: 10),
const SizedBox(height: 5),
AppCustomCheckbox( // Utilisation du nouveau widget
label: 'Naissance multiple',
value: childData.multipleBirth,