solved cancel issue

This commit is contained in:
ashrafzarkanisala
2024-07-01 19:18:40 +03:00
parent 6d36200ea8
commit f9a2de9769
7 changed files with 60 additions and 36 deletions

View File

@ -87,12 +87,14 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
} }
emit(TempHoldSceneTask(tempTasksList: tempTasksList)); emit(TempHoldSceneTask(tempTasksList: tempTasksList));
emit(AddSceneTask(tasksList: tasksList));
} }
FutureOr<void> _selectedValue( FutureOr<void> _selectedValue(
SelectedValueEvent event, Emitter<CreateSceneState> emit) { SelectedValueEvent event, Emitter<CreateSceneState> emit) {
selectedValues[event.code] = event.value; selectedValues[event.code] = event.value;
emit(SelectedTaskValueState(value: event.value)); emit(SelectedTaskValueState(value: event.value));
emit(AddSceneTask(tasksList: tasksList));
} }
FutureOr<void> _removeTaskById( FutureOr<void> _removeTaskById(
@ -116,6 +118,8 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
tempTasksList.remove(element); tempTasksList.remove(element);
emit(TempHoldSceneTask(tempTasksList: tempTasksList)); emit(TempHoldSceneTask(tempTasksList: tempTasksList));
emit(AddSceneTask(tasksList: tasksList));
break; break;
} }
} }
@ -172,6 +176,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
tempTasksList.clear(); tempTasksList.clear();
selectedValues.clear(); selectedValues.clear();
emit(TempHoldSceneTask(tempTasksList: tempTasksList)); emit(TempHoldSceneTask(tempTasksList: tempTasksList));
emit(AddSceneTask(tasksList: tempTasksList));
} }
FutureOr<void> _removeFromSelectedValueById( FutureOr<void> _removeFromSelectedValueById(
@ -179,6 +184,7 @@ class CreateSceneBloc extends Bloc<CreateSceneEvent, CreateSceneState>
if (selectedValues.containsKey(event.code)) { if (selectedValues.containsKey(event.code)) {
selectedValues.remove(event.code); selectedValues.remove(event.code);
emit(const SelectedTaskValueState(value: null)); emit(const SelectedTaskValueState(value: null));
emit(AddSceneTask(tasksList: tasksList));
} }
} }

View File

@ -8,8 +8,6 @@ sealed class CreateSceneEvent extends Equatable {
} }
class AddTaskEvent extends CreateSceneEvent { class AddTaskEvent extends CreateSceneEvent {
final bool updateTaskListFromTemp;
const AddTaskEvent({required this.updateTaskListFromTemp});
@override @override
List<Object> get props => []; List<Object> get props => [];
} }

View File

@ -660,6 +660,9 @@ mixin SceneOperationsDataHelper {
]; ];
} }
///////&************ END of get function with icons for device *************&&////////
///
///
List<SceneStaticFunction> getTaskListFunctionsFromApi({ List<SceneStaticFunction> getTaskListFunctionsFromApi({
required List<Action> actions, required List<Action> actions,
required String deviceId, required String deviceId,
@ -1267,6 +1270,11 @@ mixin SceneOperationsDataHelper {
return functions; return functions;
} }
///// END of get fucntion for once device based on the CODE ***** ///////
///
///
///
List<SceneStaticFunction> getOperationsForOneFunction({ List<SceneStaticFunction> getOperationsForOneFunction({
required String deviceId, required String deviceId,
required SceneStaticFunction taskItem, required SceneStaticFunction taskItem,

View File

@ -48,7 +48,7 @@ class DeviceFunctionsView extends StatelessWidget
onPressed: () { onPressed: () {
context context
.read<CreateSceneBloc>() .read<CreateSceneBloc>()
.add(const AddTaskEvent(updateTaskListFromTemp: true)); .add( AddTaskEvent());
Navigator.popUntil(context, (route) { Navigator.popUntil(context, (route) {
return route.settings.name == Routes.sceneTasksRoute; return route.settings.name == Routes.sceneTasksRoute;
}); });
@ -62,7 +62,19 @@ class DeviceFunctionsView extends StatelessWidget
], ],
leading: TextButton( leading: TextButton(
onPressed: () { onPressed: () {
context.read<CreateSceneBloc>().add(const ClearTaskListEvent()); final selectedValue =
context.read<CreateSceneBloc>().selectedValues;
for (var element in device.functions) {
if (selectedValue.containsKey(element.code)) {
context
.read<CreateSceneBloc>()
.add(RemoveTempTaskByIdEvent(code: element.code!));
context
.read<CreateSceneBloc>()
.add(RemoveFromSelectedValueById(code: element.code!));
}
}
Navigator.pop(context); Navigator.pop(context);
}, },
child: BodyMedium( child: BodyMedium(
@ -174,11 +186,11 @@ class DeviceFunctionsView extends StatelessWidget
final tempTaskList = context final tempTaskList = context
.read<CreateSceneBloc>() .read<CreateSceneBloc>()
.tempTasksList; .tempTasksList;
if (tempTaskList.isEmpty) { // if (tempTaskList.isEmpty) {
context // context
.read<CreateSceneBloc>() // .read<CreateSceneBloc>()
.add(const ClearTempTaskListEvent()); // .add(const ClearTempTaskListEvent());
} else { // } else {
for (var element in tempTaskList) { for (var element in tempTaskList) {
if (element.code == functions[index].code) { if (element.code == functions[index].code) {
context.read<CreateSceneBloc>().add( context.read<CreateSceneBloc>().add(
@ -189,7 +201,7 @@ class DeviceFunctionsView extends StatelessWidget
code: functions[index].code)); code: functions[index].code));
} }
} }
} //}
Navigator.pop(context); Navigator.pop(context);
}, },
); );

View File

@ -29,9 +29,10 @@ class _AlertDialogFunctionsOperationsBodyState
didChangeDependencies() { didChangeDependencies() {
super.didChangeDependencies(); super.didChangeDependencies();
final tempTaskList = context.read<CreateSceneBloc>().tempTasksList; final tempTaskList = context.read<CreateSceneBloc>().tempTasksList;
if (tempTaskList.isEmpty) { // if (tempTaskList.isEmpty) {
context.read<CreateSceneBloc>().add(const ClearTempTaskListEvent()); // context.read<CreateSceneBloc>().add(const ClearTempTaskListEvent());
} else if (tempTaskList.isNotEmpty) { // } else
if (tempTaskList.isNotEmpty) {
for (var element in tempTaskList) { for (var element in tempTaskList) {
if (element.code == widget.functions[widget.index].code) { if (element.code == widget.functions[widget.index].code) {
groupValue = element.functionValue; groupValue = element.functionValue;

View File

@ -124,16 +124,14 @@ class CustomBottomSheetWidget extends StatelessWidget {
deviceName: 'Delay The Action', deviceName: 'Delay The Action',
uniqueId: functions[0].uniqueCustomId, uniqueId: functions[0].uniqueCustomId,
)); ));
context context.read<CreateSceneBloc>().add(AddTaskEvent());
.read<CreateSceneBloc>()
.add(const AddTaskEvent(updateTaskListFromTemp: true));
Navigator.pop(context); Navigator.pop(context);
}, },
onDismiss: () { onDismiss: () {
final tempTaskList = context.read<CreateSceneBloc>().tempTasksList; final tempTaskList = context.read<CreateSceneBloc>().tempTasksList;
if (tempTaskList.isEmpty) { // if (tempTaskList.isNotEmpty) {
context.read<CreateSceneBloc>().add(const ClearTempTaskListEvent()); // context.read<CreateSceneBloc>().add(const ClearTempTaskListEvent());
} else { // } else {
for (var element in tempTaskList) { for (var element in tempTaskList) {
if (element.code == functions[0].code) { if (element.code == functions[0].code) {
context context
@ -144,7 +142,7 @@ class CustomBottomSheetWidget extends StatelessWidget {
.add(RemoveFromSelectedValueById(code: functions[0].code)); .add(RemoveFromSelectedValueById(code: functions[0].code));
} }
} }
} // }
Navigator.pop(context); Navigator.pop(context);
}, },
); );

View File

@ -55,6 +55,7 @@ class ThenDefaultContainer extends StatelessWidget {
if (state is CreateSceneLoading) { if (state is CreateSceneLoading) {
return const Center(child: LinearProgressIndicator()); return const Center(child: LinearProgressIndicator());
} }
if (state is AddSceneTask) { if (state is AddSceneTask) {
final taskLists = state.tasksList; final taskLists = state.tasksList;
if (taskLists.isNotEmpty) { if (taskLists.isNotEmpty) {