doesnt load aqi data when spaceUuid is empty.

This commit is contained in:
Faris Armoush
2025-06-16 10:46:48 +03:00
parent 362557d0d0
commit 5f20d52e57
2 changed files with 31 additions and 5 deletions

View File

@ -2,8 +2,11 @@ import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:syncrow_web/pages/analytics/modules/air_quality/blocs/air_quality_distribution/air_quality_distribution_bloc.dart'; import 'package:syncrow_web/pages/analytics/modules/air_quality/blocs/air_quality_distribution/air_quality_distribution_bloc.dart';
import 'package:syncrow_web/pages/analytics/modules/air_quality/widgets/aqi_type_dropdown.dart'; import 'package:syncrow_web/pages/analytics/modules/air_quality/widgets/aqi_type_dropdown.dart';
import 'package:syncrow_web/pages/analytics/modules/analytics/blocs/analytics_date_picker_bloc/analytics_date_picker_bloc.dart';
import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/chart_title.dart'; import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/chart_title.dart';
import 'package:syncrow_web/pages/analytics/params/get_air_quality_distribution_param.dart';
import 'package:syncrow_web/pages/analytics/widgets/charts_loading_widget.dart'; import 'package:syncrow_web/pages/analytics/widgets/charts_loading_widget.dart';
import 'package:syncrow_web/pages/space_tree/bloc/space_tree_bloc.dart';
class AqiDistributionChartTitle extends StatelessWidget { class AqiDistributionChartTitle extends StatelessWidget {
const AqiDistributionChartTitle({required this.isLoading, super.key}); const AqiDistributionChartTitle({required this.isLoading, super.key});
@ -31,9 +34,15 @@ class AqiDistributionChartTitle extends StatelessWidget {
child: AqiTypeDropdown( child: AqiTypeDropdown(
onChanged: (value) { onChanged: (value) {
if (value != null) { if (value != null) {
context try {
.read<AirQualityDistributionBloc>() final bloc = context.read<AirQualityDistributionBloc>();
.add(UpdateAqiTypeEvent(value)); final param = _makeLoadAqiDistributionParam(context, value);
bloc
..add(UpdateAqiTypeEvent(value))
..add(LoadAirQualityDistribution(param));
} catch (_) {
return;
}
} }
}, },
), ),
@ -41,4 +50,19 @@ class AqiDistributionChartTitle extends StatelessWidget {
], ],
); );
} }
GetAirQualityDistributionParam _makeLoadAqiDistributionParam(
BuildContext context,
AqiType aqiType,
) {
final date = context.read<AnalyticsDatePickerBloc>().state.monthlyDate;
final spaceUuid =
context.read<SpaceTreeBloc>().state.selectedSpaces.firstOrNull ?? '';
if (spaceUuid.isEmpty) throw Exception('Space UUID is empty');
return GetAirQualityDistributionParam(
date: date,
spaceUuid: spaceUuid,
aqiType: aqiType,
);
}
} }

View File

@ -118,7 +118,7 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget {
communityUuid: communities.firstOrNull ?? '', communityUuid: communities.firstOrNull ?? '',
spaceUuid: spaces.firstOrNull ?? '', spaceUuid: spaces.firstOrNull ?? '',
); );
break; return;
case AnalyticsPageTab.airQuality: case AnalyticsPageTab.airQuality:
_onAirQualityDateChanged( _onAirQualityDateChanged(
context, context,
@ -126,8 +126,9 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget {
communityUuid: communities.firstOrNull ?? '', communityUuid: communities.firstOrNull ?? '',
spaceUuid: spaces.firstOrNull ?? '', spaceUuid: spaces.firstOrNull ?? '',
); );
return;
default: default:
break; return;
} }
} }
} }
@ -157,6 +158,7 @@ class AnalyticsPageTabsAndChildren extends StatelessWidget {
required String communityUuid, required String communityUuid,
required String spaceUuid, required String spaceUuid,
}) { }) {
if (spaceUuid.isEmpty) return;
FetchAirQualityDataHelper.loadAirQualityData( FetchAirQualityDataHelper.loadAirQualityData(
context, context,
date: date, date: date,