import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:mobiles_labs_5th_semester/data/repositories/games_repository.dart'; import 'package:mobiles_labs_5th_semester/presentation/home_page/bloc/bloc.dart'; import 'package:mobiles_labs_5th_semester/presentation/like_bloc/like_bloc.dart'; import 'package:mobiles_labs_5th_semester/presentation/locale_bloc/locale_bloc.dart'; import 'package:mobiles_labs_5th_semester/presentation/locale_bloc/locale_state.dart'; import 'components/locale/l10n/app_locale.dart'; import 'presentation/home_page/home_page.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return BlocProvider( lazy: false, create: (context) => LocaleBloc(Locale('ru')), child: BlocBuilder(builder: (context, state) { return MaterialApp( title: 'Flutter Demo', locale: state.currentLocale, localizationsDelegates: AppLocale.localizationsDelegates, supportedLocales: AppLocale.supportedLocales, debugShowCheckedModeBanner: false, home: RepositoryProvider( //репозиторий будет создан только тогда, когда будет запрошен, а не сразу при создании виджета lazy: true, create: (_) => GamesRepository(), child: BlocProvider( lazy: false, create: (context) => LikeBloc(), child: BlocProvider( //bloc будет создан сразу при создании виджета lazy: false, //context нужен, чтобы суметь обратиться к провайдеру, кот. выше по дереву create: (context) => HomeBloc(context.read()), child: const HomePage(title: 'неSteam'), ), ))); })); } }