import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:smooth_page_indicator/smooth_page_indicator.dart'; import 'package:syncrow_app/features/app_layout/bloc/home_cubit.dart'; import 'package:syncrow_app/features/devices/bloc/devices_cubit.dart'; import 'package:syncrow_app/features/devices/view/widgets/devices_view_header.dart'; import 'package:syncrow_app/features/devices/view/widgets/room_page.dart'; import 'package:syncrow_app/features/devices/view/widgets/rooms_slider.dart'; import 'package:syncrow_app/features/devices/view/widgets/wizard_page.dart'; import 'package:syncrow_app/features/shared_widgets/text_widgets/body_large.dart'; import 'package:syncrow_app/utils/resource_manager/constants.dart'; class DevicesViewBody extends StatelessWidget { const DevicesViewBody({ super.key, }); @override Widget build(BuildContext context) { return BlocConsumer( listener: (context, state) { // if (state is GetDevicesError) { // ScaffoldMessenger.of(context).showSnackBar( // SnackBar( // content: Text(state.errorMsg), // ), // ); // } else if (state is DevicesCategoriesError) { // ScaffoldMessenger.of(context).showSnackBar( // SnackBar( // content: Text(state.errorMsg), // ), // ); // } else if (state is DeviceControlError) { // ScaffoldMessenger.of(context).showSnackBar( // SnackBar( // content: Text(state.errorMsg), // ), // ); // } }, builder: (context, state) { if (state is DevicesLoading || state is GetDevicesLoading || state is DevicesCategoriesLoading) { return const Center(child: CircularProgressIndicator()); } else { return Padding( padding: EdgeInsets.only( top: Constants.appBarHeight, bottom: Constants.bottomNavBarHeight, ), child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ const DevicesViewHeader(), const RoomsSlider(), const SizedBox( height: 10, ), Expanded( child: PageView( controller: HomeCubit.getInstance().devicesPageController, onPageChanged: (index) { HomeCubit.getInstance().devicesPageChanged(index); }, children: [ const WizardPage(), if (HomeCubit.getInstance().selectedSpace != null) if (HomeCubit.getInstance().selectedSpace!.rooms != null) ...HomeCubit.getInstance().selectedSpace!.rooms!.map( (room) { return RoomPage( room: room, ); }, ) ], ), ), HomeCubit.getInstance().selectedSpace != null ? Padding( padding: const EdgeInsets.symmetric( vertical: 7, ), child: SmoothPageIndicator( controller: HomeCubit.getInstance().devicesPageController, count: HomeCubit.getInstance() .selectedSpace! .rooms! .length + 1, effect: const WormEffect( paintStyle: PaintingStyle.stroke, dotHeight: 8, dotWidth: 8, ), ), ) : const Center( child: BodyLarge(text: 'No Home Found'), ), ], ), ); } }, ); } }