diff --git a/lib/features/devices/view/widgets/scene_listview.dart b/lib/features/devices/view/widgets/scene_listview.dart index e0065cc..63b770f 100644 --- a/lib/features/devices/view/widgets/scene_listview.dart +++ b/lib/features/devices/view/widgets/scene_listview.dart @@ -44,11 +44,13 @@ class SceneListview extends StatelessWidget { .read() .add(const SmartSceneClearEvent()); - BlocProvider.of(context) - .add(const SceneTypeEvent(CreateSceneEnum.tabToRun)); BlocProvider.of(context).add( FetchSceneTasksEvent( sceneId: scene.id, isAutomation: false)); + + /// the state to set the scene type must be after the fetch + BlocProvider.of(context) + .add(const SceneTypeEvent(CreateSceneEnum.tabToRun)); }, child: SizedBox( width: MediaQuery.of(context).size.width * 0.4, diff --git a/lib/features/scene/bloc/create_scene/create_scene_bloc.dart b/lib/features/scene/bloc/create_scene/create_scene_bloc.dart index 104396f..66bcf88 100644 --- a/lib/features/scene/bloc/create_scene/create_scene_bloc.dart +++ b/lib/features/scene/bloc/create_scene/create_scene_bloc.dart @@ -13,6 +13,7 @@ import 'package:syncrow_app/features/scene/model/create_scene_model.dart'; import 'package:syncrow_app/features/scene/model/scene_static_function.dart'; import 'package:syncrow_app/navigation/navigation_service.dart'; import 'package:syncrow_app/services/api/scene_api.dart'; +import 'package:syncrow_app/utils/helpers/snack_bar.dart'; part 'create_scene_event.dart'; part 'create_scene_state.dart'; @@ -364,6 +365,9 @@ class CreateSceneBloc extends Bloc sceneType = CreateSceneEnum.none; conditionRule = 'or'; emit(const CreateSceneWithTasks(success: true)); + CustomSnackBar.greenSnackBar(event.createSceneModel != null + ? 'Scene updated successfully' + : 'Scene created successfully'); } else { emit(const CreateSceneError(message: 'Something went wrong')); } diff --git a/lib/features/scene/widgets/create_scene_save_button.dart b/lib/features/scene/widgets/create_scene_save_button.dart index d601dc5..e1275fe 100644 --- a/lib/features/scene/widgets/create_scene_save_button.dart +++ b/lib/features/scene/widgets/create_scene_save_button.dart @@ -24,13 +24,14 @@ class CreateSceneSaveButton extends StatefulWidget { State createState() => _CreateSceneSaveButtonState(); } -class _CreateSceneSaveButtonState extends State with SceneLogicHelper { +class _CreateSceneSaveButtonState extends State + with SceneLogicHelper { late TextEditingController sceneNameController; @override void initState() { - sceneNameController = - TextEditingController(text: widget.sceneName.isNotEmpty ? widget.sceneName : ''); + sceneNameController = TextEditingController( + text: widget.sceneName.isNotEmpty ? widget.sceneName : ''); super.initState(); } @@ -48,9 +49,6 @@ class _CreateSceneSaveButtonState extends State with Scen if (state.success) { navigateToRoute(context, Routes.homeRoute); sceneNameController.text = ''; - CustomSnackBar.greenSnackBar(widget.sceneName.isNotEmpty - ? 'Scene updated successfully' - : 'Scene created successfully'); } } else if (state is CreateSceneError) { CustomSnackBar.displaySnackBar(state.message); @@ -60,7 +58,8 @@ class _CreateSceneSaveButtonState extends State with Scen return DefaultButton( onPressed: () { final sceneBloc = context.read(); - final isAutomation = sceneBloc.sceneType == CreateSceneEnum.deviceStatusChanges; + final isAutomation = + sceneBloc.sceneType == CreateSceneEnum.deviceStatusChanges; if (widget.sceneName.isNotEmpty) { handleSaveButtonPress( @@ -83,11 +82,13 @@ class _CreateSceneSaveButtonState extends State with Scen elevation: WidgetStateProperty.all(0), textStyle: WidgetStateProperty.all(context.bodyMedium), hintStyle: WidgetStateProperty.all( - context.bodyMedium - .copyWith(fontSize: 14, color: ColorsManager.secondaryTextColor), + context.bodyMedium.copyWith( + fontSize: 14, + color: ColorsManager.secondaryTextColor), ), hintText: 'Enter scene name', - backgroundColor: WidgetStateProperty.all(ColorsManager.backgroundColor), + backgroundColor: WidgetStateProperty.all( + ColorsManager.backgroundColor), ), ), ), diff --git a/lib/features/scene/widgets/scene_view_widget/scene_item.dart b/lib/features/scene/widgets/scene_view_widget/scene_item.dart index 6a576da..53c1c1d 100644 --- a/lib/features/scene/widgets/scene_view_widget/scene_item.dart +++ b/lib/features/scene/widgets/scene_view_widget/scene_item.dart @@ -39,11 +39,15 @@ class SceneItem extends StatelessWidget { if (disablePlayButton == false) { BlocProvider.of(context).add( FetchSceneTasksEvent(sceneId: scene.id, isAutomation: false)); + + /// the state to set the scene type must be after the fetch BlocProvider.of(context) .add(const SceneTypeEvent(CreateSceneEnum.tabToRun)); } else { BlocProvider.of(context) .add(FetchSceneTasksEvent(sceneId: scene.id, isAutomation: true)); + + /// the state to set the scene type must be after the fetch BlocProvider.of(context) .add(const SceneTypeEvent(CreateSceneEnum.deviceStatusChanges)); }