buildDualLineChart function
Build a dual-line chart widget.
Implementation
Widget buildDualLineChart({
required Map<DateTime, double> chartMaxData,
required Map<DateTime, double> chartMinData,
required double dataMin,
required double dataMax,
required String dataType,
}) {
// Handle flat data: if max == min for all points, don't draw chart.
final allFlat =
chartMaxData.values.every((v) => v == dataMax) &&
chartMinData.values.every((v) => v == dataMin) &&
dataMax == dataMin;
if (allFlat) {
return SizedBox(
height: 200,
child: Center(
child: Text(
'No variation in data',
style: TextStyle(color: Colors.grey.shade600),
),
),
);
}
return SizedBox(
height: 200,
child: CustomPaint(
painter: WeatherChartDualPainter(
dailyMaxValues: chartMaxData,
dailyMinValues: chartMinData,
minValue: dataMin,
maxValue: dataMax,
maxColor: Colors.red,
minColor: Colors.blue,
),
size: const Size(double.infinity, 200),
),
);
}