Files
unionflow-client-quarkus-pr…/unionflow-mobile-apps/lib/app.dart
2025-08-20 21:00:35 +00:00

36 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'core/auth/bloc/auth_bloc.dart';
import 'core/auth/models/auth_state.dart';
import 'features/splash/presentation/pages/splash_screen.dart';
import 'features/auth/presentation/pages/login_page.dart';
import 'features/navigation/presentation/pages/main_navigation.dart';
/// Wrapper principal de l'application qui gère la navigation basée sur l'état d'authentification
class AppWrapper extends StatelessWidget {
const AppWrapper({super.key});
@override
Widget build(BuildContext context) {
return BlocBuilder<AuthBloc, AuthState>(
builder: (context, state) {
switch (state.status) {
case AuthStatus.unknown:
case AuthStatus.checking:
// Afficher l'écran de chargement pendant l'initialisation
return const SplashScreen();
case AuthStatus.authenticated:
// Utilisateur connecté -> Navigation principale
return const MainNavigation();
case AuthStatus.unauthenticated:
case AuthStatus.error:
case AuthStatus.expired:
// Utilisateur non connecté -> Écran de connexion
return const LoginPage();
}
},
);
}
}