import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_android_app/presentation/home_page/bloc/bloc.dart'; import 'package:flutter_android_app/presentation/home_page/home_page.dart'; import 'package:flutter_android_app/presentation/like_bloc/like_bloc.dart'; import 'package:flutter_android_app/presentation/locale_bloc/locale_bloc.dart'; import 'package:flutter_android_app/presentation/locale_bloc/locale_state.dart'; import 'package:flutter_android_app/repositories/potter_repository.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'components/locale/l10n/app_localizations.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return BlocProvider<LikeBloc>( lazy: false, create: (context) => LikeBloc(), child: BlocProvider<LocaleBloc>( lazy: false, create: (context) => LocaleBloc(Locale(Platform.localeName)), child: BlocBuilder<LocaleBloc, LocaleState>( builder: (context, state) => MaterialApp( title: 'Flutter Demo', locale: state.currentLocale, localizationsDelegates: AppLocale.localizationsDelegates, supportedLocales: AppLocale.supportedLocales, theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.green), useMaterial3: true, ), home: RepositoryProvider<PotterRepository>( lazy: true, create: (_) => PotterRepository(), child: BlocProvider<HomeBloc>( lazy: false, create: (context) => HomeBloc(context.read<PotterRepository>()), child: const MyHomePage(title: 'Harry Potter characters'), ), ), ), ), ), ); } }