refactoring

This commit is contained in:
DahoudG
2024-11-02 15:27:26 +00:00
parent 8e625c1080
commit 9cf96b7acf
44 changed files with 2281 additions and 354 deletions

View File

@@ -8,33 +8,43 @@ import 'package:afterwork/presentation/screens/event/event_screen.dart';
import 'package:afterwork/data/datasources/event_remote_data_source.dart';
import '../presentation/reservations/reservations_screen.dart';
/// Router personnalisé pour gérer la navigation dans l'application.
/// Les logs permettent de tracer chaque navigation dans la console.
/// [AppRouter] gère la navigation dans l'application.
/// Chaque navigation est loguée pour assurer une traçabilité dans la console.
class AppRouter {
final EventRemoteDataSource eventRemoteDataSource;
final String userId;
final String userName;
final String userLastName;
/// Initialisation des informations utilisateur et source de données
/// Constructeur de [AppRouter] initialisant les informations utilisateur
/// et la source de données pour les événements.
///
/// [eventRemoteDataSource] : Source de données pour les événements.
/// [userId], [userName], [userLastName] : Informations de l'utilisateur.
AppRouter({
required this.eventRemoteDataSource,
required this.userId,
required this.userName,
required this.userLastName,
}) {
print("AppRouter initialisé avec les infos utilisateur : $userId, $userName, $userLastName");
// Log d'initialisation avec les informations utilisateur
debugPrint("[LOG] AppRouter initialisé avec les infos utilisateur : $userId, $userName, $userLastName");
}
/// Génération des routes pour l'application
/// Génère une route en fonction du [RouteSettings] fourni.
///
/// Logue chaque navigation en fonction du nom de la route.
Route<dynamic> generateRoute(RouteSettings settings) {
print("Navigation vers la route : ${settings.name}");
// Log de la navigation vers la route
debugPrint("[LOG] Navigation vers la route : ${settings.name}");
switch (settings.name) {
case '/':
debugPrint("[LOG] Chargement de l'écran de connexion");
return MaterialPageRoute(builder: (_) => const LoginScreen());
case '/home':
debugPrint("[LOG] Chargement de l'écran d'accueil avec l'ID utilisateur : $userId");
return MaterialPageRoute(
builder: (_) => HomeScreen(
eventRemoteDataSource: eventRemoteDataSource,
@@ -46,6 +56,7 @@ class AppRouter {
);
case '/event':
debugPrint("[LOG] Chargement de l'écran d'événement pour l'utilisateur : $userId");
return MaterialPageRoute(
builder: (_) => EventScreen(
userId: userId,
@@ -55,21 +66,28 @@ class AppRouter {
);
case '/story':
debugPrint("[LOG] Chargement de l'écran des histoires");
return MaterialPageRoute(builder: (_) => const StoryScreen());
case '/profile':
debugPrint("[LOG] Chargement de l'écran du profil");
return MaterialPageRoute(builder: (_) => const ProfileScreen());
case '/settings':
debugPrint("[LOG] Chargement de l'écran des paramètres");
return MaterialPageRoute(builder: (_) => const SettingsScreen());
case '/reservations':
debugPrint("[LOG] Chargement de l'écran des réservations");
return MaterialPageRoute(builder: (_) => const ReservationsScreen());
default:
debugPrint("[ERROR] Route non trouvée : ${settings.name}");
return MaterialPageRoute(
builder: (_) => const Scaffold(
body: Center(child: Text('Page non trouvée')),
body: Center(
child: Text('Page non trouvée'),
),
),
);
}