diff --git a/lib/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart.dart b/lib/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart.dart index d3cab467..aab0a607 100644 --- a/lib/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart.dart +++ b/lib/pages/analytics/modules/air_quality/widgets/aqi_distribution_chart.dart @@ -35,6 +35,7 @@ class AqiDistributionChart extends StatelessWidget { final data = chartData[index]; final stackItems = []; double currentY = 0; + bool isFirstElement = true; if (data.good != null) { stackItems.add( @@ -42,11 +43,18 @@ class AqiDistributionChart extends StatelessWidget { fromY: currentY, toY: currentY + data.good!, color: AirQualityDataModel.metricColors['good']!, - borderRadius: _barBorderRadius, + borderRadius: isFirstElement + ? const BorderRadius.only( + topLeft: Radius.circular(22), + topRight: Radius.circular(22), + ) + // ignore: dead_code + : _barBorderRadius, width: _barWidth, ), ); currentY += data.good! + _rodStackItemsSpacing; + isFirstElement = false; } if (data.moderate != null) { @@ -55,11 +63,17 @@ class AqiDistributionChart extends StatelessWidget { fromY: currentY, toY: currentY + data.moderate!, color: AirQualityDataModel.metricColors['moderate']!, - borderRadius: _barBorderRadius, + borderRadius: isFirstElement + ? const BorderRadius.only( + topLeft: Radius.circular(22), + topRight: Radius.circular(22), + ) + : _barBorderRadius, width: _barWidth, ), ); currentY += data.moderate! + _rodStackItemsSpacing; + isFirstElement = false; } if (data.poor != null) { @@ -68,11 +82,17 @@ class AqiDistributionChart extends StatelessWidget { fromY: currentY, toY: currentY + data.poor!, color: AirQualityDataModel.metricColors['poor']!, - borderRadius: _barBorderRadius, + borderRadius: isFirstElement + ? const BorderRadius.only( + topLeft: Radius.circular(22), + topRight: Radius.circular(22), + ) + : _barBorderRadius, width: _barWidth, ), ); currentY += data.poor! + _rodStackItemsSpacing; + isFirstElement = false; } if (data.unhealthy != null) { @@ -81,11 +101,17 @@ class AqiDistributionChart extends StatelessWidget { fromY: currentY, toY: currentY + data.unhealthy!, color: AirQualityDataModel.metricColors['unhealthy']!, - borderRadius: _barBorderRadius, + borderRadius: isFirstElement + ? const BorderRadius.only( + topLeft: Radius.circular(22), + topRight: Radius.circular(22), + ) + : _barBorderRadius, width: _barWidth, ), ); currentY += data.unhealthy! + _rodStackItemsSpacing; + isFirstElement = false; } if (data.severe != null) { @@ -94,11 +120,17 @@ class AqiDistributionChart extends StatelessWidget { fromY: currentY, toY: currentY + data.severe!, color: AirQualityDataModel.metricColors['severe']!, - borderRadius: _barBorderRadius, + borderRadius: isFirstElement + ? const BorderRadius.only( + topLeft: Radius.circular(22), + topRight: Radius.circular(22), + ) + : _barBorderRadius, width: _barWidth, ), ); currentY += data.severe! + _rodStackItemsSpacing; + isFirstElement = false; } if (data.hazardous != null) { @@ -107,11 +139,17 @@ class AqiDistributionChart extends StatelessWidget { fromY: currentY, toY: currentY + data.hazardous!, color: AirQualityDataModel.metricColors['hazardous']!, - borderRadius: _barBorderRadius, + borderRadius: isFirstElement + ? const BorderRadius.only( + topLeft: Radius.circular(22), + topRight: Radius.circular(22), + ) + : _barBorderRadius, width: _barWidth, ), ); currentY += data.hazardous! + _rodStackItemsSpacing; + isFirstElement = false; } return BarChartGroupData( 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 ac770a4e..8d20db94 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 @@ -27,21 +27,21 @@ class AqiDistributionChartBox extends StatelessWidget { chartData: [ AirQualityDataModel( date: DateTime(2025, 5, 1), - good: 30, - moderate: 25, - poor: 15, - unhealthy: 10, - severe: 15, - hazardous: 5, + good: null, + moderate: 35, + poor: 20, + unhealthy: 15, + severe: 20, + hazardous: 10, ), AirQualityDataModel( date: DateTime(2025, 5, 2), - good: 40, + good: null, moderate: 20, poor: 20, - unhealthy: 10, - severe: 5, - hazardous: 5, + unhealthy: null, + severe: 30, + hazardous: 25, ), AirQualityDataModel( date: DateTime(2025, 5, 3),