Improve loading state handling and in FetchRoutineScenesAutomation.

This commit is contained in:
Faris Armoush
2025-04-17 13:13:48 +03:00
parent f912b41fd8
commit 70f1f39fce

View File

@ -8,25 +8,17 @@ import 'package:syncrow_web/utils/constants/assets.dart';
import 'package:syncrow_web/utils/extension/build_context_x.dart'; import 'package:syncrow_web/utils/extension/build_context_x.dart';
import 'package:syncrow_web/utils/helpers/responsice_layout_helper/responsive_layout_helper.dart'; import 'package:syncrow_web/utils/helpers/responsice_layout_helper/responsive_layout_helper.dart';
class FetchRoutineScenesAutomation extends StatefulWidget { class FetchRoutineScenesAutomation extends StatelessWidget
const FetchRoutineScenesAutomation({super.key});
@override
State<FetchRoutineScenesAutomation> createState() => _FetchRoutineScenesState();
}
class _FetchRoutineScenesState extends State<FetchRoutineScenesAutomation>
with HelperResponsiveLayout { with HelperResponsiveLayout {
const FetchRoutineScenesAutomation({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return BlocBuilder<RoutineBloc, RoutineState>( return BlocBuilder<RoutineBloc, RoutineState>(
builder: (context, state) { builder: (context, state) {
return state.isLoading if (state.isLoading) const Center(child: CircularProgressIndicator());
? const Center(
child: CircularProgressIndicator(), return SingleChildScrollView(
)
: SingleChildScrollView(
child: Padding( child: Padding(
padding: const EdgeInsets.symmetric(vertical: 16.0), padding: const EdgeInsets.symmetric(vertical: 16.0),
child: Column( child: Column(
@ -130,8 +122,8 @@ class _FetchRoutineScenesState extends State<FetchRoutineScenesAutomation>
scrollDirection: Axis.horizontal, scrollDirection: Axis.horizontal,
itemCount: state.automations.length, itemCount: state.automations.length,
itemBuilder: (context, index) { itemBuilder: (context, index) {
final isLoading = state.automations final isLoading =
.contains(state.automations[index].id); state.automations.contains(state.automations[index].id);
return Column( return Column(
children: [ children: [
@ -144,16 +136,15 @@ class _FetchRoutineScenesState extends State<FetchRoutineScenesAutomation>
onChanged: (v) { onChanged: (v) {
context.read<RoutineBloc>().add( context.read<RoutineBloc>().add(
UpdateAutomationStatus( UpdateAutomationStatus(
automationId: automationId: state.automations[index].id,
state.automations[index].id,
automationStatusUpdate: automationStatusUpdate:
AutomationStatusUpdate( AutomationStatusUpdate(
spaceUuid: state spaceUuid:
.automations[index].spaceId, state.automations[index].spaceId,
isEnable: v, isEnable: v,
), ),
communityId: state communityId:
.automations[index].communityId, state.automations[index].communityId,
), ),
); );
}, },
@ -172,8 +163,7 @@ class _FetchRoutineScenesState extends State<FetchRoutineScenesAutomation>
); );
context.read<RoutineBloc>().add( context.read<RoutineBloc>().add(
GetAutomationDetails( GetAutomationDetails(
automationId: automationId: state.automations[index].id,
state.automations[index].id,
isAutomation: true, isAutomation: true,
isUpdate: true, isUpdate: true,
), ),