resets selection and clears data.

This commit is contained in:
Faris Armoush
2025-05-14 15:47:07 +03:00
parent 0e61e52bf8
commit 63e7b3faa2
3 changed files with 46 additions and 8 deletions

View File

@ -14,12 +14,20 @@ class EnergyManagementDataLoadingStrategy implements AnalyticsDataLoadingStrateg
CommunityModel community,
List<SpaceModel> spaces,
) {
// Add to space tree bloc first
context.read<SpaceTreeBloc>().add(
OnCommunitySelected(
community.uuid,
spaces,
),
);
final spaceTreeState = context.read<SpaceTreeBloc>().state;
if (spaceTreeState.selectedCommunities.contains(community.uuid)) {
clearData(context);
return;
}
FetchEnergyManagementDataHelper.loadEnergyManagementData(
context,
communityId: community.uuid,
@ -41,6 +49,13 @@ class EnergyManagementDataLoadingStrategy implements AnalyticsDataLoadingStrateg
),
);
final spaceTreeState = context.read<SpaceTreeBloc>().state;
if (spaceTreeState.selectedCommunities.contains(community.uuid) ||
spaceTreeState.selectedSpaces.contains(space.uuid)) {
clearData(context);
return;
}
FetchEnergyManagementDataHelper.loadEnergyManagementData(
context,
communityId: community.uuid,
@ -54,7 +69,7 @@ class EnergyManagementDataLoadingStrategy implements AnalyticsDataLoadingStrateg
CommunityModel community,
SpaceModel child,
) {
// Do nothing
// Do nothing else as per original implementation
}
@override

View File

@ -20,6 +20,12 @@ class OccupancyDataLoadingStrategy implements AnalyticsDataLoadingStrategy {
spaces.isNotEmpty ? [spaces.first] : [],
),
);
final spaceTreeState = context.read<SpaceTreeBloc>().state;
if (spaceTreeState.selectedCommunities.contains(community.uuid)) {
clearData(context);
return;
}
FetchOccupancyDataHelper.loadOccupancyData(
context,
communityId: community.uuid,
@ -47,6 +53,13 @@ class OccupancyDataLoadingStrategy implements AnalyticsDataLoadingStrategy {
..add(OnSpaceSelected(community, space.uuid ?? '', []));
}
final spaceTreeState = context.read<SpaceTreeBloc>().state;
if (spaceTreeState.selectedCommunities.contains(community.uuid) ||
spaceTreeState.selectedSpaces.contains(space.uuid)) {
clearData(context);
return;
}
FetchOccupancyDataHelper.loadOccupancyData(
context,
communityId: community.uuid,
@ -66,6 +79,6 @@ class OccupancyDataLoadingStrategy implements AnalyticsDataLoadingStrategy {
@override
void clearData(BuildContext context) {
context.read<SpaceTreeBloc>().add(const SpaceTreeClearSelectionEvent());
// FetchOccupancyDataHelper.clearAllData(context);
FetchOccupancyDataHelper.clearAllData(context);
}
}

View File

@ -14,14 +14,24 @@ class AnalyticsCommunitiesSidebar extends StatelessWidget {
return Expanded(
child: AnalyticsSpaceTreeView(
onSelectCommunity: (community, spaces) {
onSelectCommunity: (community, spaces) async {
await Future.delayed(const Duration(milliseconds: 100), () {
if (!context.mounted) return;
strategy.onCommunitySelected(context, community, spaces);
});
},
onSelectSpace: (community, space) {
onSelectSpace: (community, space) async {
await Future.delayed(const Duration(milliseconds: 100), () {
if (!context.mounted) return;
strategy.onSpaceSelected(context, community, space);
});
},
onSelectChildSpace: (community, child) {
onSelectChildSpace: (community, child) async {
await Future.delayed(const Duration(milliseconds: 100), () {
if (!context.mounted) return;
strategy.onChildSpaceSelected(context, community, child);
});
},
),
);