import 'package:toastification/toastification.dart'; import 'food_delivery_client.dart'; void main() { runZonedGuarded( () async { WidgetsFlutterBinding.ensureInitialized(); FlutterError.onError = (details) { FlutterError.presentError(details); log("Flutter.onError $details"); }; Bloc.observer = AppBlocObserver(); await configureDependencies(); runApp( BlocProvider(create: (context) => sl(), child: MyApp()), ); }, (error, stack) { log("RunZoneGuard Error $error"); }, ); } class MyApp extends StatefulWidget { const MyApp({super.key}); @override State createState() => _MyAppState(); } class _MyAppState extends State { @override void initState() { SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, DeviceOrientation.portraitDown, ]); super.initState(); } @override Widget build(BuildContext context) { return BlocBuilder( bloc: context.read()..add(LanguageEvent.started()), builder: (context, state) { return ToastificationWrapper( child: MaterialApp.router( title: AppLocaleKeys.appName, debugShowCheckedModeBanner: false, theme: AppTheme.lightTheme, darkTheme: AppTheme.darkTheme, themeMode: ThemeMode.light, routerConfig: sl().router, locale: state.currentLocale, supportedLocales: L10n.locales, localizationsDelegates: [ AppLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], builder: (context, child) => GestureDetector( onTap: () { FocusManager.instance.primaryFocus?.unfocus(); }, child: MediaQuery( data: MediaQuery.of( context, ).copyWith(textScaler: const TextScaler.linear(1)), child: child!, ), ), ), ); }, ); } }