Skip to content

Commit

Permalink
fix: fixes analytics chart time axis number format.
Browse files Browse the repository at this point in the history
  • Loading branch information
just-seba committed Sep 9, 2024
1 parent 9936c7e commit 11b1d08
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 12 deletions.
25 changes: 15 additions & 10 deletions app/lib/ui/analytics/charts/analytics_day_chart.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,13 @@ import 'package:emma/ui/analytics/charts/analytics_chart_container.dart';
import 'package:emma/ui/analytics/charts/nice_scale.dart';
import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:signals/signals_flutter.dart';

class AnalyticsDayChart extends StatelessWidget {
static final _minutesFormat = NumberFormat('00');
static final _hoursFormat = NumberFormat('#0');

const AnalyticsDayChart({super.key, required this.viewModel});

final AnalyticsViewModel viewModel;
Expand Down Expand Up @@ -61,7 +65,7 @@ class AnalyticsDayChart extends StatelessWidget {
max: maxValue,
);

const verticalInterval = 120.0;
const timeAxisInterval = 120.0;
return LineChartData(
minX: 0,
maxX: maxX,
Expand All @@ -71,7 +75,7 @@ class AnalyticsDayChart extends StatelessWidget {
show: true,
drawVerticalLine: false,
horizontalInterval: niceScale.tickInterval,
verticalInterval: verticalInterval,
verticalInterval: timeAxisInterval,
getDrawingHorizontalLine: (value) {
return FlLine(
color: colorScheme.mainGridLine,
Expand All @@ -92,17 +96,17 @@ class AnalyticsDayChart extends StatelessWidget {
sideTitles: SideTitles(
showTitles: true,
reservedSize: 30,
interval: verticalInterval,
interval: timeAxisInterval,
getTitlesWidget: (value, meta) =>
_xAxisTitleWidgets(textTheme, value, meta),
_buildTimeAxisTitleWidget(textTheme, value, meta),
),
),
leftTitles: AxisTitles(
sideTitles: SideTitles(
showTitles: true,
interval: niceScale.tickInterval,
getTitlesWidget: (value, meta) =>
_yAxisTitleWidgets(textTheme, value, meta),
_buildPowerAxisTitleWidget(textTheme, value, meta),
reservedSize: 42,
),
),
Expand Down Expand Up @@ -137,7 +141,7 @@ class AnalyticsDayChart extends StatelessWidget {
);
}

static Widget _yAxisTitleWidgets(
static Widget _buildPowerAxisTitleWidget(
TextTheme theme, double value, TitleMeta meta) {
final text = '${value.toInt()}W';

Expand All @@ -147,14 +151,15 @@ class AnalyticsDayChart extends StatelessWidget {
);
}

static Widget _xAxisTitleWidgets(
static Widget _buildTimeAxisTitleWidget(
TextTheme theme, double value, TitleMeta meta) {
final minutes = value.toInt();
final text = '${minutes ~/ 60}:${minutes % 60}';
final hours = _hoursFormat.format(value ~/ 60);
final minutes = _minutesFormat.format(value % 60);

return SideTitleWidget(
axisSide: meta.axisSide,
angle: -45,
child: Text(text, style: theme.labelSmall),
child: Text('$hours:$minutes', style: theme.labelSmall),
);
}

Expand Down
4 changes: 2 additions & 2 deletions app/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1297,10 +1297,10 @@ packages:
dependency: transitive
description:
name: vm_service
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc
url: "https://pub.dev"
source: hosted
version: "14.2.5"
version: "14.2.4"
watcher:
dependency: transitive
description:
Expand Down

0 comments on commit 11b1d08

Please sign in to comment.