import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_web/pages/routines/bloc/routine_bloc/routine_bloc.dart'; import 'package:syncrow_web/pages/routines/view/create_new_routine_view.dart'; import 'package:syncrow_web/pages/routines/widgets/main_routine_view/fetch_routine_scenes_automation.dart'; import 'package:syncrow_web/pages/routines/widgets/main_routine_view/routine_view_card.dart'; import 'package:syncrow_web/pages/space_tree/bloc/space_tree_bloc.dart'; import 'package:syncrow_web/pages/space_tree/view/space_tree_view.dart'; import 'package:syncrow_web/utils/color_manager.dart'; import 'package:syncrow_web/utils/snack_bar.dart'; class RoutinesView extends StatefulWidget { const RoutinesView({super.key}); @override State createState() => _RoutinesViewState(); } class _RoutinesViewState extends State { @override void initState() { super.initState(); context.read().add(FetchDevicesInRoutine()); } @override Widget build(BuildContext context) { return BlocBuilder( builder: (context, state) { if (state.createRoutineView) { return const CreateNewRoutineView(); } return Row( children: [ Expanded( child: SpaceTreeView( onSelect: () {}, )), Expanded( flex: 4, child: ListView(children: [ Container( padding: const EdgeInsets.all(16), height: MediaQuery.sizeOf(context).height, child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start, children: [ Text( "Create New Routines", style: Theme.of(context).textTheme.titleLarge?.copyWith( color: ColorsManager.grayColor, fontWeight: FontWeight.bold, ), ), const SizedBox( height: 10, ), RoutineViewCard( onTap: () { if (context.read().selectedCommunityId.isNotEmpty && context.read().selectedSpaceId.isNotEmpty) { context.read().add( (ResetRoutineState()), ); BlocProvider.of(context).add( const CreateNewRoutineViewEvent(createRoutineView: true), ); } else { CustomSnackBar.redSnackBar('Please select a space'); } }, icon: Icons.add, textString: '', ), const SizedBox( height: 15, ), const Expanded(child: FetchRoutineScenesAutomation()), ], ), ), ]), ), ], ); }, ); } }