diff --git a/lib/main.dart b/lib/main.dart index 822b87d..b5bf78a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,8 +1,14 @@ +import 'dart:io'; + import 'package:flutter/material.dart'; import 'package:testlab/presentaition/home_page/home_page.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:testlab/presentaition/home_page/bloc/bloc.dart'; import 'data/repositories/potter_films_repository.dart'; +import 'package:testlab/presentaition/like_bloc/like_bloc.dart'; +import 'package:testlab/presentaition/locale_bloc/locale_bloc.dart'; +import 'package:testlab/presentaition/locale_bloc/locale_state.dart'; +import 'components/locale/l10n/app_locale.dart'; void main() { runApp(const MyApp()); @@ -13,21 +19,36 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { - return MaterialApp( - title: 'Flutter Demo', - debugShowCheckedModeBanner: false, - theme: ThemeData( - colorScheme: ColorScheme.fromSeed(seedColor: Colors.red), - useMaterial3: true, - ), - home: RepositoryProvider( - lazy: true, - create: (_) => PotterFilmsRepository(), - child: BlocProvider( - lazy: false, - create: (context) => HomeBloc(context.read()), - child: const MyHomePage(title: 'Фирсов Кирилл Алексеевич'), - ), + return BlocProvider( + lazy: false, + create: (context) => LocaleBloc(Locale(Platform.localeName)), + child: BlocBuilder( + builder: (context, state) { + return MaterialApp( + title: 'Flutter Demo', + locale: state.currentLocale, + localizationsDelegates: AppLocale.localizationsDelegates, + supportedLocales: AppLocale.supportedLocales, + debugShowCheckedModeBanner: false, + theme: ThemeData( + colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), + useMaterial3: true, + ), + home: RepositoryProvider( + lazy: true, + create: (_) => PotterFilmsRepository(), + child: BlocProvider( + lazy: false, + create: (context) => LikeBloc(), + child: BlocProvider( + lazy: false, + create: (context) => HomeBloc(context.read()), + child: const MyHomePage(title: 'Фирсов Кирилл Алексеевич'), + ), + ), + ), + ); + }, ), ); }