45 lines
1.3 KiB
Dart
45 lines
1.3 KiB
Dart
import 'package:charts_flutter/flutter.dart';
|
|
import 'package:encrateia/models/record_list.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:encrateia/models/event.dart';
|
|
import 'package:encrateia/utils/graph_utils.dart';
|
|
|
|
class LapGroundTimeChart extends StatelessWidget {
|
|
const LapGroundTimeChart({this.records});
|
|
|
|
final RecordList<Event> records;
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final int offset = records.first.distance.round();
|
|
|
|
final List<Series<Event, int>> data = <Series<Event, int>>[
|
|
Series<Event, int>(
|
|
id: 'Ground Time',
|
|
colorFn: (_, __) => MaterialPalette.green.shadeDefault,
|
|
domainFn: (Event record, _) => record.distance.round() - offset,
|
|
measureFn: (Event record, _) => record.groundTime,
|
|
data: records,
|
|
)
|
|
];
|
|
|
|
return Container(
|
|
height: 300,
|
|
child: LineChart(
|
|
data,
|
|
animate: false,
|
|
primaryMeasureAxis: const NumericAxisSpec(
|
|
tickProviderSpec: BasicNumericTickProviderSpec(
|
|
zeroBound: false,
|
|
dataIsInWholeNumbers: false,
|
|
desiredTickCount: 5,
|
|
),
|
|
),
|
|
behaviors: GraphUtils.axis(
|
|
measureTitle: 'Ground Time (ms)',
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|