Select Git revision
-
Benoît Harrault authoredBenoît Harrault authored
timeline_chart_eclecticism.dart 4.22 KiB
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:fl_chart/fl_chart.dart';
import '../../../config/app_colors.dart';
import '../../../models/timeline.dart';
class ChartTimelineEclecticism extends StatelessWidget {
final TimelineData chartData;
const ChartTimelineEclecticism({super.key, required this.chartData});
@override
Widget build(BuildContext context) {
return Container(
height: 100.0,
child: LineChart(
LineChartData(
lineBarsData: getDataEclecticism(),
backgroundColor: Theme.of(context).colorScheme.onBackground,
borderData: getBorderData(),
gridData: getGridData(),
titlesData: getTitlesData(),
lineTouchData: getLineTouchDataEclecticism(),
maxY: 100,
minY: 0,
),
duration: const Duration(milliseconds: 250),
),
);
}
List<LineChartBarData> getDataEclecticism() {
List<FlSpot> spots = [];
this.chartData.data.keys.forEach((element) {
TimelineDataValue? value = this.chartData.data[element];
if (value != null) {
final double date = DateTime.parse(element).millisecondsSinceEpoch.toDouble();
final double eclecticism = value.eclecticism.toDouble();
spots.add(FlSpot(date, eclecticism));
}
});
return [
LineChartBarData(
isCurved: true,
color: AppColors.contentColorCyan,
barWidth: 3,
isStrokeCapRound: false,
dotData: const FlDotData(show: false),
belowBarData: BarAreaData(show: true),
spots: spots,
),
];
}
FlBorderData getBorderData() {
return FlBorderData(
show: true,
border: Border.all(
color: AppColors.borderColor,
width: 2,
),
);
}
FlGridData getGridData() {
return const FlGridData(