import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_web/pages/home/bloc/home_bloc.dart'; import 'package:syncrow_web/pages/home/bloc/home_event.dart'; import 'package:syncrow_web/pages/routines/bloc/create_routine_bloc/create_routine_bloc.dart'; import 'package:syncrow_web/pages/routines/bloc/routine_bloc/routine_bloc.dart'; import 'package:syncrow_web/pages/space_tree/bloc/space_tree_bloc.dart'; import 'package:syncrow_web/pages/visitor_password/bloc/visitor_password_bloc.dart'; import 'package:syncrow_web/utils/app_routes.dart'; import 'package:syncrow_web/utils/navigation_service.dart'; import 'package:syncrow_web/utils/theme/theme.dart'; class SyncrowApp extends StatelessWidget { const SyncrowApp({super.key}); @override Widget build(BuildContext context) { return MultiBlocProvider( providers: [ BlocProvider( create: (context) => CreateRoutineBloc(), ), BlocProvider( create: (context) => HomeBloc()..add(const FetchUserInfo()), ), BlocProvider( create: (context) => VisitorPasswordBloc(), ), BlocProvider( create: (context) => RoutineBloc(), ), BlocProvider( create: (context) => SpaceTreeBloc(), ), ], child: MaterialApp.router( debugShowCheckedModeBanner: false, scrollBehavior: const MaterialScrollBehavior().copyWith( dragDevices: { PointerDeviceKind.mouse, PointerDeviceKind.touch, PointerDeviceKind.stylus, PointerDeviceKind.unknown, }, ), key: NavigationService.navigatorKey, theme: myTheme, routerConfig: AppRoutes.router, ), ); } }