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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user