import 'package:flutter/material.dart'; import 'package:afterwork/config/router.dart'; import 'package:afterwork/data/datasources/event_remote_data_source.dart'; import 'package:afterwork/data/providers/user_provider.dart'; import 'package:afterwork/data/services/secure_storage.dart'; import 'package:afterwork/data/services/preferences_helper.dart'; import 'package:http/http.dart' as http; import 'package:provider/provider.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); final eventRemoteDataSource = EventRemoteDataSource(http.Client()); // Remplacez ici par l'utilisation du stockage sécurisé ou des préférences final SecureStorage secureStorage = SecureStorage(); final PreferencesHelper preferencesHelper = PreferencesHelper(); String? userId = await secureStorage.getUserId(); String? userName = await preferencesHelper.getUserName(); String? userLastName = await preferencesHelper.getUserLastName(); // Si les valeurs sont nulles, vous pouvez définir des valeurs par défaut ou gérer autrement userId ??= 'default_user_id'; // Remplacer par une valeur par défaut si nécessaire userName ??= 'Default'; userLastName ??= 'User'; runApp(MyApp( eventRemoteDataSource: eventRemoteDataSource, userId: userId, userName: userName, userLastName: userLastName, )); } class MyApp extends StatelessWidget { final EventRemoteDataSource eventRemoteDataSource; final String userId; final String userName; final String userLastName; const MyApp({ super.key, required this.eventRemoteDataSource, required this.userId, required this.userName, required this.userLastName, }); @override Widget build(BuildContext context) { return MultiProvider( providers: [ ChangeNotifierProvider( create: (_) => UserProvider()..setUser(userId, userName, userLastName), ), // Ajouter d'autres providers ici si nécessaire ], child: MaterialApp( title: 'AfterWork', theme: ThemeData( primarySwatch: Colors.blue, ), onGenerateRoute: AppRouter( eventRemoteDataSource: eventRemoteDataSource, userId: userId, userName: userName, userLastName: userLastName, ).generateRoute, initialRoute: '/', ), ); } }