import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_redux/flutter_redux.dart'; import 'package:redux/redux.dart'; import 'active_fires.dart'; import 'fire_alert.dart'; import 'fire_notification_list.dart'; import 'generated/i18n.dart'; import 'globals.dart'; import 'home_page.dart'; import 'intro_page.dart'; import 'models/app_state.dart'; import 'monitored_areas.dart'; import 'privacy_page.dart'; import 'sandbox.dart'; import 'support_page.dart'; import 'theme.dart'; import 'theme_dev.dart'; import 'widgets/material_app_with_intro.dart'; class FiresApp extends StatefulWidget { const FiresApp(this.store, {super.key}); final Store store; @override // ignore: library_private_types_in_public_api _FiresAppState createState() => _FiresAppState(); } class _FiresAppState extends State { // globals.getIt.registerSingleton _FiresAppState(); late final Store store; final GlobalKey navigatorKey = GlobalKey(); static Widget introWidget(BuildContext context) => IntroPage(); static Widget continueWidget(BuildContext context) => const HomePage(); @override void initState() { super.initState(); store = widget.store; } final Map routes = { IntroPage.routeName: introWidget, HomePage.routeName: continueWidget, PrivacyPage.routeName: (BuildContext context) => PrivacyPage(context), ActiveFiresPage.routeName: (BuildContext context) => const ActiveFiresPage(), Sandbox.routeName: (BuildContext context) => const Sandbox(), FireAlert.routeName: (BuildContext context) => const FireAlert(), SupportPage.routeName: (BuildContext context) => const SupportPage(), FireNotificationList.routeName: (BuildContext context) => const FireNotificationList(), MonitoredAreasPage.routeName: (BuildContext context) => const MonitoredAreasPage() }; @override Widget build(BuildContext context) { const StatefulWidget home = MaterialAppWithIntroHome( introWidget, continueWidget, 'showInitialWizard-2018-06-27-01'); return StoreProvider( store: store, child: MaterialApp( navigatorKey: navigatorKey, localizationsDelegates: const >[ S.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ], supportedLocales: S.delegate.supportedLocales, localeResolutionCallback: S.delegate.resolution(fallback: const Locale('en', '')), home: home, onGenerateTitle: (BuildContext context) { return S.of(context).appName; }, theme: isDevelopment ? devFiresTheme : firesTheme, routes: routes)); } }