feat(auth): Amélioration UI et logique inscription parent étape 3
- Ajout du switch "Enfant à naître" et ajustement du champ prénom. - Amélioration de la gestion de l'affichage des photos (placeholder, kIsWeb). - Refactorisation des boutons avec HoverReliefWidget. - Localisation du DatePicker en français. - Nettoyage de l'intégration (annulée) de image_cropper. - Mise à jour de EVOLUTIONS_CDC.md.
This commit is contained in:
@@ -1,26 +1,76 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import '../screens/auth/login_screen.dart';
|
||||
import '../screens/auth/register_choice_screen.dart';
|
||||
import '../screens/auth/parent_register_step1_screen.dart';
|
||||
import '../screens/auth/parent_register_step2_screen.dart';
|
||||
import '../screens/auth/parent_register_step3_screen.dart';
|
||||
import '../screens/home/home_screen.dart';
|
||||
|
||||
class AppRouter {
|
||||
static const String login = '/login';
|
||||
static const String registerChoice = '/register-choice';
|
||||
static const String parentRegisterStep1 = '/parent-register/step1';
|
||||
static const String parentRegisterStep2 = '/parent-register/step2';
|
||||
static const String parentRegisterStep3 = '/parent-register/step3';
|
||||
static const String home = '/home';
|
||||
|
||||
static Route<dynamic> generateRoute(RouteSettings settings) {
|
||||
Widget screen;
|
||||
bool slideTransition = false;
|
||||
|
||||
switch (settings.name) {
|
||||
case login:
|
||||
return MaterialPageRoute(builder: (_) => const LoginScreen());
|
||||
screen = const LoginPage();
|
||||
break;
|
||||
case registerChoice:
|
||||
screen = const RegisterChoiceScreen();
|
||||
slideTransition = true; // Activer la transition pour cet écran
|
||||
break;
|
||||
case parentRegisterStep1:
|
||||
screen = const ParentRegisterStep1Screen();
|
||||
slideTransition = true; // Activer la transition pour cet écran
|
||||
break;
|
||||
case parentRegisterStep2:
|
||||
screen = const ParentRegisterStep2Screen();
|
||||
slideTransition = true;
|
||||
break;
|
||||
case parentRegisterStep3:
|
||||
screen = const ParentRegisterStep3Screen();
|
||||
slideTransition = true;
|
||||
break;
|
||||
case home:
|
||||
return MaterialPageRoute(builder: (_) => const HomeScreen());
|
||||
screen = const HomeScreen();
|
||||
break;
|
||||
default:
|
||||
return MaterialPageRoute(
|
||||
builder: (_) => Scaffold(
|
||||
body: Center(
|
||||
child: Text('Route non définie: [36m${settings.name}[0m'),
|
||||
),
|
||||
screen = Scaffold(
|
||||
body: Center(
|
||||
child: Text('Route non définie : ${settings.name}'),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
if (slideTransition) {
|
||||
return PageRouteBuilder(
|
||||
pageBuilder: (context, animation, secondaryAnimation) => screen,
|
||||
transitionsBuilder: (context, animation, secondaryAnimation, child) {
|
||||
const begin = Offset(1.0, 0.0); // Glisse depuis la droite
|
||||
const end = Offset.zero;
|
||||
const curve = Curves.easeInOut; // Animation douce
|
||||
|
||||
var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));
|
||||
var offsetAnimation = animation.drive(tween);
|
||||
|
||||
return SlideTransition(
|
||||
position: offsetAnimation,
|
||||
child: child,
|
||||
);
|
||||
},
|
||||
transitionDuration: const Duration(milliseconds: 400), // Durée de la transition
|
||||
);
|
||||
} else {
|
||||
// Transition par défaut pour les autres écrans
|
||||
return MaterialPageRoute(builder: (_) => screen);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user