From 5b5feca8b87f98c4f94de7b9fa047d69c33a074c Mon Sep 17 00:00:00 2001 From: Roland Geider Date: Wed, 25 Aug 2021 17:19:47 +0200 Subject: [PATCH] Refactor weight chart to be used with the measurement entries --- lib/widgets/dashboard/widgets.dart | 4 +++- lib/widgets/weight/charts.dart | 18 ++++++++++++------ lib/widgets/weight/entries_list.dart | 3 ++- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/lib/widgets/dashboard/widgets.dart b/lib/widgets/dashboard/widgets.dart index e903ce41..8b8fbf68 100644 --- a/lib/widgets/dashboard/widgets.dart +++ b/lib/widgets/dashboard/widgets.dart @@ -258,7 +258,9 @@ class _DashboardWeightWidgetState extends State { ? Container( padding: EdgeInsets.all(15), height: 180, - child: WeightChartWidget(weightEntriesData.items), + child: WeightChartWidget(weightEntriesData.items + .map((e) => MeasurementChartEntry(e.weight, e.date)) + .toList()), ) : NothingFound( AppLocalizations.of(context).noWeightEntries, diff --git a/lib/widgets/weight/charts.dart b/lib/widgets/weight/charts.dart index 4ccfa9d9..592fed5a 100644 --- a/lib/widgets/weight/charts.dart +++ b/lib/widgets/weight/charts.dart @@ -18,14 +18,20 @@ import 'package:charts_flutter/flutter.dart' as charts; import 'package:flutter/widgets.dart'; -import 'package:wger/models/body_weight/weight_entry.dart'; import 'package:wger/theme/theme.dart'; +class MeasurementChartEntry { + num value; + DateTime date; + + MeasurementChartEntry(this.value, this.date); +} + /// Weight chart widget class WeightChartWidget extends StatelessWidget { - final List _entries; + final List _entries; - /// [_entries] is a list of [WeightEntry] as returned e.g. by the + /// [_entries] is a list of [MeasurementChartEntry] as returned e.g. by the /// [BodyWeight] provider. WeightChartWidget(this._entries); @@ -33,11 +39,11 @@ class WeightChartWidget extends StatelessWidget { Widget build(BuildContext context) { return charts.TimeSeriesChart( [ - charts.Series( + charts.Series( id: 'Weight', colorFn: (_, __) => wgerChartSecondaryColor, - domainFn: (WeightEntry weightEntry, _) => weightEntry.date, - measureFn: (WeightEntry weightEntry, _) => weightEntry.weight, + domainFn: (MeasurementChartEntry entry, _) => entry.date, + measureFn: (MeasurementChartEntry entry, _) => entry.value, data: _entries, ) ], diff --git a/lib/widgets/weight/entries_list.dart b/lib/widgets/weight/entries_list.dart index 48f07554..15edfb70 100644 --- a/lib/widgets/weight/entries_list.dart +++ b/lib/widgets/weight/entries_list.dart @@ -35,7 +35,8 @@ class WeightEntriesList extends StatelessWidget { Container( padding: EdgeInsets.all(15), height: 220, - child: WeightChartWidget(_weightProvider.items), + child: WeightChartWidget( + _weightProvider.items.map((e) => MeasurementChartEntry(e.weight, e.date)).toList()), ), Divider(), Expanded(