import 'package:citycards_customer/cart/blocs/postcard_bloc.dart'; import 'package:citycards_customer/core/route_constants.dart'; import 'package:citycards_customer/search_offers/bloc/offers_bloc.dart'; import 'package:citycards_customer/trail.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:flutter_stripe/flutter_stripe.dart'; // ADD THIS import 'core/app_router.dart'; import 'home/bloc/FirstTimeUserHome/first_time_user_home_bloc.dart'; import 'home/bloc/FirstTimeUserHome/first_time_user_home_event.dart'; import 'home/bloc/registeredHome/home_bloc.dart'; import 'home/repository/first_time_user_home_repository.dart'; import 'home/repository/home_repository.dart'; import 'login/bloc/login/login_bloc.dart'; import 'login/repository/login_repository.dart'; import 'my_pass/blocs/my_pass_bloc.dart'; import 'postcard/blocs/myPostCards/my_postcard_bloc.dart'; import 'postcard/repository/my_postcard_repository.dart'; import 'profile/bloc/profile/profile_bloc.dart'; import 'search_offers/repository/offers_repository.dart'; import 'search_offers/view/search_offers_with_listing.dart'; void main() async { // CHANGE: Add async WidgetsFlutterBinding.ensureInitialized(); Stripe.publishableKey = 'pk_test_51SrwZ7RtCkWyT4EmmP5ozlEVEscMvWPDPVshQbNdQe1S27iGkwZ7YD4BSEm7TUvvlgPRvznuQq6daVyA9p1UWNnz00WVsaw2Yj'; // Replace with your key // Stripe.merchantIdentifier = 'merchant.com.citycards'; // Optional // Stripe.urlScheme = 'flutterstripe'; // Optional SystemChrome.setSystemUIOverlayStyle( const SystemUiOverlayStyle( statusBarColor: Colors.white, statusBarIconBrightness: Brightness.dark, statusBarBrightness: Brightness.light, ), ); runApp(MyApp()); } class MyApp extends StatelessWidget { MyApp({super.key}); final AppRouter _appRouter = AppRouter(); @override Widget build(BuildContext context) { return ScreenUtilInit( designSize: const Size(390, 844), builder: (context, child) { return MultiBlocProvider( providers: [ BlocProvider( create: (_) => MyPassBloc()..add(LoadMyPasses()), ), BlocProvider( create: (context) => FirstTimeUserHomeBloc( FirstTimeUserHomeRepository(), )..add(FetchFirstTimeUserHomeEvent()), ), BlocProvider( create: (context) => HomeBloc( homeRepository: HomeRepository(), ), ), BlocProvider( create: (context) => LoginBloc( loginRepository: LoginRepository(), ), ), BlocProvider( create: (_) => OffersBloc(OffersRepository()), child: const OffersScreen(), ), BlocProvider(create: (context) => ProfileBloc()), BlocProvider( create: (context) => MyPostCardBloc( repository: MyPostCardsRepository(), ), ), ], child: MaterialApp( onGenerateRoute: _appRouter.onGenerateRoute, initialRoute: RouteConstants.splash, debugShowCheckedModeBanner: false, title: 'City Cards', theme: ThemeData( textTheme: GoogleFonts.poppinsTextTheme( Theme.of(context).textTheme, ), ), ), ); }, ); } }