refactor(inscription): Refonte complète du processus d'inscription - Modèles etdonnées: Suppression de placeholder_registration_data.dart, ajout de user_registration_data.dart, data_generator.dart et card_assets.dart - Interface utilisateur: Refonte des écrans d'inscription, amélioration des widgets, ajout de cartes colorées - Assets: Ajout de nouvelles cartes colorées - Configuration: Mise à jour de pubspec.yaml et app_router.dart

This commit is contained in:
Julien Martin
2025-05-12 12:00:49 +02:00
parent acb602643a
commit 1496f7f174
32 changed files with 1035 additions and 717 deletions
+31 -20
View File
@@ -8,7 +8,7 @@ import '../screens/auth/parent_register_step3_screen.dart';
import '../screens/auth/parent_register_step4_screen.dart';
import '../screens/auth/parent_register_step5_screen.dart';
import '../screens/home/home_screen.dart';
import '../models/placeholder_registration_data.dart';
import '../models/user_registration_data.dart';
class AppRouter {
static const String login = '/login';
@@ -23,6 +23,12 @@ class AppRouter {
static Route<dynamic> generateRoute(RouteSettings settings) {
Widget screen;
bool slideTransition = false;
Object? args = settings.arguments;
Widget buildErrorScreen(String step) {
print("Erreur: Données UserRegistrationData manquantes ou de mauvais type pour l'étape $step");
return const ParentRegisterStep1Screen();
}
switch (settings.name) {
case login:
@@ -30,32 +36,43 @@ class AppRouter {
break;
case registerChoice:
screen = const RegisterChoiceScreen();
slideTransition = true; // Activer la transition pour cet écran
slideTransition = true;
break;
case parentRegisterStep1:
screen = const ParentRegisterStep1Screen();
slideTransition = true; // Activer la transition pour cet écran
slideTransition = true;
break;
case parentRegisterStep2:
screen = const ParentRegisterStep2Screen();
if (args is UserRegistrationData) {
screen = ParentRegisterStep2Screen(registrationData: args);
} else {
screen = buildErrorScreen('2');
}
slideTransition = true;
break;
case parentRegisterStep3:
screen = const ParentRegisterStep3Screen();
if (args is UserRegistrationData) {
screen = ParentRegisterStep3Screen(registrationData: args);
} else {
screen = buildErrorScreen('3');
}
slideTransition = true;
break;
case parentRegisterStep4:
screen = const ParentRegisterStep4Screen();
if (args is UserRegistrationData) {
screen = ParentRegisterStep4Screen(registrationData: args);
} else {
screen = buildErrorScreen('4');
}
slideTransition = true;
break;
case parentRegisterStep5:
final args = settings.arguments as PlaceholderRegistrationData?;
if (args != null) {
if (args is UserRegistrationData) {
screen = ParentRegisterStep5Screen(registrationData: args);
} else {
print("Erreur: Données d'inscription manquantes pour l'étape 5");
screen = const RegisterChoiceScreen();
screen = buildErrorScreen('5');
}
slideTransition = true;
break;
case home:
screen = const HomeScreen();
@@ -72,22 +89,16 @@ class AppRouter {
return PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) => screen,
transitionsBuilder: (context, animation, secondaryAnimation, child) {
const begin = Offset(1.0, 0.0); // Glisse depuis la droite
const begin = Offset(1.0, 0.0);
const end = Offset.zero;
const curve = Curves.easeInOut; // Animation douce
const curve = Curves.easeInOut;
var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));
var offsetAnimation = animation.drive(tween);
return SlideTransition(
position: offsetAnimation,
child: child,
);
return SlideTransition(position: offsetAnimation, child: child);
},
transitionDuration: const Duration(milliseconds: 400), // Durée de la transition
transitionDuration: const Duration(milliseconds: 400),
);
} else {
// Transition par défaut pour les autres écrans
return MaterialPageRoute(builder: (_) => screen);
}
}