refactoring

This commit is contained in:
DahoudG
2024-09-01 04:08:50 +00:00
parent 7e1cb85160
commit a1fce6bf27
31 changed files with 1651 additions and 441 deletions

View File

@@ -1,23 +1,74 @@
import 'package:flutter/material.dart';
import 'config/router.dart';
import 'core/theme/app_theme.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() {
runApp(const AfterWorkApp());
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 AfterWorkApp extends StatelessWidget {
const AfterWorkApp({super.key});
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 MaterialApp(
title: 'AfterWork',
theme: AppTheme.lightTheme,
darkTheme: AppTheme.darkTheme, // Ajout du thème sombre
themeMode: ThemeMode.system, // Choix automatique du thème en fonction du système
onGenerateRoute: AppRouter.generateRoute,
initialRoute: '/',
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: '/',
),
);
}
}