From 8dc7d2b3d016e044ed4f25d540e9432876db292b Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Sun, 1 Jun 2025 13:02:52 +0300 Subject: [PATCH] Connected `AirQualityDistributionBloc` into `AqiDistributionChartBox`. --- .../widgets/aqi_distribution_chart_box.dart | 76 +++++++------------ 1 file changed, 28 insertions(+), 48 deletions(-) diff --git a/lib/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart_box.dart b/lib/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart_box.dart index 8d20db94..8347a15b 100644 --- a/lib/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart_box.dart +++ b/lib/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart_box.dart @@ -1,7 +1,9 @@ import 'package:flutter/material.dart'; -import 'package:syncrow_web/pages/analytics/models/air_quality_data_model.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/widgets/aqi_distribution_chart.dart'; import 'package:syncrow_web/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart_title.dart'; +import 'package:syncrow_web/pages/analytics/widgets/analytics_error_widget.dart'; import 'package:syncrow_web/utils/style.dart'; class AqiDistributionChartBox extends StatelessWidget { @@ -9,54 +11,32 @@ class AqiDistributionChartBox extends StatelessWidget { @override Widget build(BuildContext context) { - return Container( - padding: const EdgeInsetsDirectional.all(30), - decoration: subSectionContainerDecoration.copyWith( - borderRadius: BorderRadius.circular(30), - ), - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - const AqiDistributionChartTitle(isLoading: false), - const SizedBox(height: 10), - const Divider(), - const SizedBox(height: 20), - Expanded( - child: AqiDistributionChart( - chartData: [ - AirQualityDataModel( - date: DateTime(2025, 5, 1), - good: null, - moderate: 35, - poor: 20, - unhealthy: 15, - severe: 20, - hazardous: 10, - ), - AirQualityDataModel( - date: DateTime(2025, 5, 2), - good: null, - moderate: 20, - poor: 20, - unhealthy: null, - severe: 30, - hazardous: 25, - ), - AirQualityDataModel( - date: DateTime(2025, 5, 3), - good: 35, - moderate: 30, - poor: 15, - unhealthy: 10, - severe: 5, - hazardous: 5, - ), - ], - ), + return BlocBuilder( + builder: (context, state) { + return Container( + padding: const EdgeInsetsDirectional.all(30), + decoration: subSectionContainerDecoration.copyWith( + borderRadius: BorderRadius.circular(30), ), - ], - ), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (state.errorMessage != null) ...[ + AnalyticsErrorWidget(state.errorMessage), + const SizedBox(height: 10), + ], + AqiDistributionChartTitle( + isLoading: state.status == AirQualityDistributionStatus.loading, + ), + const SizedBox(height: 10), + const Divider(), + const SizedBox(height: 20), + Expanded(child: AqiDistributionChart(chartData: state.chartData)), + ], + ), + ); + }, ); } }