diff --git a/lib/pages/analytics/modules/analytics/widgets/analytics_communities_sidebar.dart b/lib/pages/analytics/modules/analytics/widgets/analytics_communities_sidebar.dart index 286ea87d..801af744 100644 --- a/lib/pages/analytics/modules/analytics/widgets/analytics_communities_sidebar.dart +++ b/lib/pages/analytics/modules/analytics/widgets/analytics_communities_sidebar.dart @@ -1,4 +1,6 @@ import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/power_clamp_info/power_clamp_info_bloc.dart'; import 'package:syncrow_web/pages/analytics/modules/energy_management/helpers/fetch_energy_management_data_helper.dart'; import 'package:syncrow_web/pages/space_tree/view/space_tree_view.dart'; @@ -25,9 +27,21 @@ class AnalyticsCommunitiesSidebar extends StatelessWidget { FetchEnergyManagementDataHelper.loadRealtimeDeviceChanges( context, ); - FetchEnergyManagementDataHelper.loadPowerClampInfo( - context, - ); + context.read().add( + const ClearPowerClampInfoEvent(), + ); + final (selectedCommunities, selectedSpaces) = + FetchEnergyManagementDataHelper + .getSelectedCommunitiesAndSpaces(context); + if (selectedCommunities.isEmpty && selectedSpaces.isEmpty) { + context.read().add( + const ClearPowerClampInfoEvent(), + ); + } else { + FetchEnergyManagementDataHelper.loadPowerClampInfo( + context, + ); + } } }, ); diff --git a/lib/pages/analytics/modules/energy_management/blocs/realtime_device_changes/realtime_device_changes_bloc.dart b/lib/pages/analytics/modules/energy_management/blocs/realtime_device_changes/realtime_device_changes_bloc.dart index a73f38b0..9099293f 100644 --- a/lib/pages/analytics/modules/energy_management/blocs/realtime_device_changes/realtime_device_changes_bloc.dart +++ b/lib/pages/analytics/modules/energy_management/blocs/realtime_device_changes/realtime_device_changes_bloc.dart @@ -41,13 +41,14 @@ class RealtimeDeviceChangesBloc ); } - void _onRealtimeDeviceChangesClosed( + Future _onRealtimeDeviceChangesClosed( RealtimeDeviceChangesClosed event, Emitter emit, ) async { + add(const _RealtimeDeviceChangesUpdated([])); await _subscription?.cancel(); _subscription = null; - emit(state.copyWith(status: RealtimeDeviceChangesStatus.closed)); + emit(const RealtimeDeviceChangesState()); } void _onRealtimeDeviceChangesUpdated( @@ -72,8 +73,8 @@ class RealtimeDeviceChangesBloc } @override - Future close() { - _subscription?.cancel(); + Future close() async { + await _subscription?.cancel(); return super.close(); } } diff --git a/lib/pages/analytics/modules/energy_management/blocs/realtime_device_changes/realtime_device_changes_state.dart b/lib/pages/analytics/modules/energy_management/blocs/realtime_device_changes/realtime_device_changes_state.dart index 78475084..5ba47feb 100644 --- a/lib/pages/analytics/modules/energy_management/blocs/realtime_device_changes/realtime_device_changes_state.dart +++ b/lib/pages/analytics/modules/energy_management/blocs/realtime_device_changes/realtime_device_changes_state.dart @@ -1,6 +1,6 @@ part of 'realtime_device_changes_bloc.dart'; -enum RealtimeDeviceChangesStatus { initial, loaded, failure, closed } +enum RealtimeDeviceChangesStatus { initial, loaded, failure } final class RealtimeDeviceChangesState extends Equatable { const RealtimeDeviceChangesState({ diff --git a/lib/pages/analytics/modules/energy_management/helpers/fetch_energy_management_data_helper.dart b/lib/pages/analytics/modules/energy_management/helpers/fetch_energy_management_data_helper.dart index eeaa4d64..4f329104 100644 --- a/lib/pages/analytics/modules/energy_management/helpers/fetch_energy_management_data_helper.dart +++ b/lib/pages/analytics/modules/energy_management/helpers/fetch_energy_management_data_helper.dart @@ -18,7 +18,7 @@ abstract final class FetchEnergyManagementDataHelper { DateTime? selectedDate, }) { final (selectedCommunities, selectedSpaces) = - _getSelectedCommunitiesAndSpaces(context); + getSelectedCommunitiesAndSpaces(context); if (selectedCommunities.isEmpty && selectedSpaces.isEmpty) { clearAllData(context); @@ -32,7 +32,7 @@ abstract final class FetchEnergyManagementDataHelper { } static (List selectedCommunities, List selectedSpaces) - _getSelectedCommunitiesAndSpaces(BuildContext context) { + getSelectedCommunitiesAndSpaces(BuildContext context) { final spaceTreeState = context.read().state; final selectedCommunities = spaceTreeState.selectedCommunities; final selectedSpaces = spaceTreeState.selectedSpaces; @@ -58,7 +58,7 @@ abstract final class FetchEnergyManagementDataHelper { DateTime? selectedDate, }) { final (selectedCommunities, selectedSpaces) = - _getSelectedCommunitiesAndSpaces(context); + getSelectedCommunitiesAndSpaces(context); final param = GetTotalEnergyConsumptionParam( spaceId: selectedCommunities.firstOrNull,