Connected AirQualityDistributionBloc into AqiDistributionChartBox.

This commit is contained in:
Faris Armoush
2025-06-01 13:02:52 +03:00
parent accafb150e
commit 8dc7d2b3d0

View File

@ -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<AirQualityDistributionBloc, AirQualityDistributionState>(
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)),
],
),
);
},
);
}
}