import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'theme.dart'; import 'providers/providers.dart'; import 'pages/login_page.dart'; import 'pages/routes_page.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await SystemChrome.setPreferredOrientations([ DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight, ]); runApp( const ProviderScope( child: PlanBLogisticApp(), ), ); } class PlanBLogisticApp extends ConsumerWidget { const PlanBLogisticApp({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final language = ref.watch(languageProvider); return MaterialApp( title: 'Plan B Logistics', theme: MaterialTheme(const TextTheme()).light(), darkTheme: MaterialTheme(const TextTheme()).dark(), themeMode: ThemeMode.dark, locale: Locale(language), localizationsDelegates: const [ GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: const [ Locale('en', ''), Locale('fr', ''), ], home: const AppHome(), ); } } class AppHome extends ConsumerWidget { const AppHome({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final isAuthenticatedAsync = ref.watch(isAuthenticatedProvider); return isAuthenticatedAsync.when( data: (isAuthenticated) { if (isAuthenticated) { return const RoutesPage(); } else { return const LoginPage(); } }, loading: () => const Scaffold( body: Center( child: CircularProgressIndicator(), ), ), error: (error, stackTrace) => const LoginPage(), ); } }