From 926bcd9a5d5a69ddeeb639baff26a1b8ab9f48cb Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Mon, 26 May 2025 10:47:25 +0300 Subject: [PATCH] Extracted lines data into a helper method for ease of readability. --- .../widgets/range_of_aqi_chart.dart | 38 +++++++------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/lib/pages/analytics/modules/air_quality/widgets/range_of_aqi_chart.dart b/lib/pages/analytics/modules/air_quality/widgets/range_of_aqi_chart.dart index b179ec4a..d53fee0e 100644 --- a/lib/pages/analytics/modules/air_quality/widgets/range_of_aqi_chart.dart +++ b/lib/pages/analytics/modules/air_quality/widgets/range_of_aqi_chart.dart @@ -16,6 +16,12 @@ class RangeOfAqiChart extends StatelessWidget { required this.maxValues, }); + List<(List values, Color color, Color? dotColor)> _lines() => [ + (maxValues, const Color(0xFF962DFF), const Color(0xFF5F00BD)), + (avgValues, Colors.white, null), + (minValues, const Color(0xFF93AAFD), const Color(0xFF023DFE)), + ]; + @override Widget build(BuildContext context) { return Stack( @@ -41,23 +47,10 @@ class RangeOfAqiChart extends StatelessWidget { ), ), ], - lineBarsData: [ - _buildLine( - values: maxValues, - color: const Color(0xFF962DFF), - dotColor: const Color(0xFF5F00BD), - ), - _buildLine( - values: avgValues, - color: Colors.white, - dotColor: null, - ), - _buildLine( - values: minValues, - color: const Color(0xFF93AAFD), - dotColor: const Color(0xFF023DFE), - ), - ], + lineBarsData: _lines().map((e) { + final (values, color, dotColor) = e; + return _buildLine(values: values, color: color, dotColor: dotColor); + }).toList(), ), ), ], @@ -67,7 +60,7 @@ class RangeOfAqiChart extends StatelessWidget { FlDotData _buildDotData(Color color) { return FlDotData( show: true, - getDotPainter: (spot, percent, bar, index) => FlDotCirclePainter( + getDotPainter: (_, __, ___, ____) => FlDotCirclePainter( radius: 2, color: ColorsManager.whiteColors, strokeWidth: 2, @@ -81,17 +74,14 @@ class RangeOfAqiChart extends StatelessWidget { required Color color, Color? dotColor, }) { + const invisibleDot = FlDotData(show: false); return LineChartBarData( - spots: List.generate( - values.length, - (i) => FlSpot(i.toDouble(), values[i]), - ), + spots: List.generate(values.length, (i) => FlSpot(i.toDouble(), values[i])), isCurved: true, color: color, barWidth: 4, isStrokeCapRound: true, - dotData: - dotColor != null ? _buildDotData(dotColor) : const FlDotData(show: false), + dotData: dotColor != null ? _buildDotData(dotColor) : invisibleDot, belowBarData: BarAreaData(show: false), ); }