mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 15:17:31 +00:00
bug fixed it is locally change the state now
This commit is contained in:
@ -1422,15 +1422,17 @@ class RoutineBloc extends Bloc<RoutineEvent, RoutineState> {
|
||||
event.automationId, event.automationStatusUpdate, projectId);
|
||||
|
||||
if (success) {
|
||||
final updatedAutomations = await SceneApi.getAutomationByUnitId(
|
||||
event.automationStatusUpdate.spaceUuid,
|
||||
event.communityId,
|
||||
projectId);
|
||||
// await SceneApi.getAutomationByUnitId(
|
||||
// event.automationStatusUpdate.spaceUuid,
|
||||
// event.communityId,
|
||||
// projectId);
|
||||
|
||||
// Remove from loading set safely
|
||||
|
||||
final updatedLoadingIds = {...state.loadingAutomationIds!}
|
||||
..remove(event.automationId);
|
||||
|
||||
final updatedAutomations = changeItemStateOnToggelingSceen(
|
||||
state.automations, event.automationId);
|
||||
emit(state.copyWith(
|
||||
automations: updatedAutomations,
|
||||
loadingAutomationIds: updatedLoadingIds,
|
||||
@ -1452,4 +1454,30 @@ class RoutineBloc extends Bloc<RoutineEvent, RoutineState> {
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
List<ScenesModel> changeItemStateOnToggelingSceen(
|
||||
List<ScenesModel> oldSceen, String automationId) {
|
||||
final updatedAutomations = oldSceen;
|
||||
final temp =
|
||||
updatedAutomations.firstWhere((element) => element.id == automationId);
|
||||
final tempIndex = updatedAutomations.indexWhere(
|
||||
(element) => element.id == automationId,
|
||||
);
|
||||
updatedAutomations.removeWhere(
|
||||
(element) => element.id == automationId,
|
||||
);
|
||||
updatedAutomations.insert(
|
||||
tempIndex,
|
||||
ScenesModel(
|
||||
id: temp.id,
|
||||
name: temp.name,
|
||||
status: temp.status == 'enable' ? 'disable' : 'enable',
|
||||
type: temp.type,
|
||||
spaceName: temp.spaceName,
|
||||
spaceId: temp.spaceId,
|
||||
communityId: temp.communityId,
|
||||
),
|
||||
);
|
||||
return updatedAutomations;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user