[Frontend] Refactorisation inscription Parents avec Provider (#38 #39)

Refactorisation complète du parcours d'inscription des parents pour utiliser
Provider au lieu du passage de données par paramètres de navigation.

Modifications principales :
- Utilisation de Provider pour partager UserRegistrationData entre les étapes
- Simplification du routeur (suppression des paramètres)
- Amélioration de la persistance des données entre les étapes
- Meilleure expérience utilisateur lors de la navigation

Fichiers modifiés :
- models/user_registration_data.dart : Modèle avec ChangeNotifier
- screens/auth/parent_register_step1-5_screen.dart : Intégration Provider
- navigation/app_router.dart : Simplification du routing
- main.dart : Configuration du Provider
- login_screen.dart : Ajout navigation vers inscription
- register_choice_screen.dart : Navigation vers parcours parent/AM
- utils/data_generator.dart : Génération de données de test

Refs: #38 (Étape 3 Enfants), #39 (Étapes 4-6 Finalisation)
This commit is contained in:
2026-01-27 16:44:23 +01:00
parent dbd56637e1
commit 29bee9fa80
11 changed files with 505 additions and 325 deletions
+9 -10
View File
@@ -8,14 +8,14 @@ import 'package:go_router/go_router.dart';
import '../../widgets/image_button.dart';
import '../../widgets/custom_app_text_field.dart';
class LoginPage extends StatefulWidget {
const LoginPage({super.key});
class LoginScreen extends StatefulWidget {
const LoginScreen({super.key});
@override
State<LoginPage> createState() => _LoginPageState();
State<LoginScreen> createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {
class _LoginPageState extends State<LoginScreen> {
final _formKey = GlobalKey<FormState>();
final _emailController = TextEditingController();
final _passwordController = TextEditingController();
@@ -168,12 +168,12 @@ class _LoginPageState extends State<LoginPage> {
),
),
),
const SizedBox(height: 10),
// Lien de création de compte
const SizedBox(height: 20),
// Lien de création de compte (version originale)
Center(
child: TextButton(
onPressed: () {
Navigator.pushNamed(context, '/register-choice');
context.go('/register-choice');
},
child: Text(
'Créer un compte',
@@ -185,7 +185,6 @@ class _LoginPageState extends State<LoginPage> {
),
),
),
const SizedBox(height: 20), // Réduit l'espacement en bas
],
),
),
@@ -234,13 +233,13 @@ class _LoginPageState extends State<LoginPage> {
_FooterLink(
text: 'Mentions légales',
onTap: () {
Navigator.pushNamed(context, '/legal');
context.go('/legal');
},
),
_FooterLink(
text: 'Politique de confidentialité',
onTap: () {
Navigator.pushNamed(context, '/privacy');
context.go('/privacy');
},
),
],