import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:get/get.dart'; import 'package:marco/helpers/extensions/app_localization_delegate.dart'; import 'package:marco/helpers/services/localizations/language.dart'; import 'package:marco/helpers/services/navigation_services.dart'; import 'package:marco/helpers/services/storage/local_storage.dart'; import 'package:marco/helpers/theme/app_notifier.dart'; import 'package:marco/helpers/theme/app_theme.dart'; import 'package:marco/helpers/theme/theme_customizer.dart'; import 'package:marco/routes.dart'; import 'package:provider/provider.dart'; import 'package:url_strategy/url_strategy.dart'; Future main() async { WidgetsFlutterBinding.ensureInitialized(); setPathUrlStrategy(); try { await LocalStorage.init(); await ThemeCustomizer.init(); AppStyle.init(); } catch (e) { print('Error during app initialization: $e'); return; } runApp(ChangeNotifierProvider( create: (context) => AppNotifier(), child: MyApp(), )); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return Consumer( builder: (_, notifier, ___) { return GetMaterialApp( debugShowCheckedModeBanner: false, theme: AppTheme.lightTheme, darkTheme: AppTheme.darkTheme, themeMode: ThemeCustomizer.instance.theme, navigatorKey: NavigationService.navigatorKey, initialRoute: "/dashboard", getPages: getPageRoute(), builder: (context, child) { NavigationService.registerContext(context); return Directionality( textDirection: AppTheme.textDirection, child: child ?? Container()); }, localizationsDelegates: [ AppLocalizationsDelegate(context), GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: Language.getLocales(), ); }, ); } }