import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:responsive_framework/breakpoint.dart'; import 'package:responsive_framework/responsive_breakpoints.dart'; import 'package:wow_english/common/blocs/cachebloc/cache_bloc.dart'; import 'package:wow_english/common/widgets/hide_keyboard_widget.dart'; import 'package:wow_english/pages/tab/blocs/tab_bloc.dart'; import 'package:wow_english/pages/user/bloc/user_bloc.dart'; import 'package:wow_english/route/route.dart'; class App extends StatelessWidget { const App({super.key}); @override Widget build(BuildContext context) { return ScreenUtilInit( designSize: const Size(667, 375), builder: (_, __) => MultiBlocProvider( providers: [ BlocProvider(create: (_) => TabBloc()), BlocProvider(create: (_) => CacheBloc()), BlocProvider(create: (_) => UserBloc()), ], child: HideKeyboard( child: MaterialApp( title: 'WowEnglish', theme: ThemeData( fontFamily: 'HannotateSC', colorScheme: ColorScheme.fromSeed(seedColor: Colors.white), useMaterial3: true, ), builder: EasyLoading.init( builder: (context, child) => ResponsiveBreakpoints(breakpoints: const [ Breakpoint(start: 0, end: 450, name: MOBILE), Breakpoint(start: 0, end: 450, name: PHONE), Breakpoint(start: 451, end: 800, name: TABLET), Breakpoint(start: 801, end: 1920, name: DESKTOP), Breakpoint(start: 1921, end: double.infinity, name: '4K'), ], child: child!)), initialRoute: AppRouteName.splash, navigatorKey: AppRouter.navigatorKey, onGenerateRoute: AppRouter.generateRoute, ), )), ); } }