Add ability to select distance unit
Some checks failed
Some checks failed
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mileograph_flutter/objects/objects.dart';
|
||||
import 'package:mileograph_flutter/services/distance_unit_service.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class TractionCard extends StatelessWidget {
|
||||
const TractionCard({
|
||||
@@ -28,6 +30,7 @@ class TractionCard extends StatelessWidget {
|
||||
final domain = loco.domain ?? '';
|
||||
final hasMileageOrTrips = _hasMileageOrTrips(loco);
|
||||
final statusColors = _statusChipColors(context, status);
|
||||
final distanceUnits = context.watch<DistanceUnitService>();
|
||||
|
||||
return Card(
|
||||
child: Padding(
|
||||
@@ -151,8 +154,11 @@ class TractionCard extends StatelessWidget {
|
||||
children: [
|
||||
_statPill(
|
||||
context,
|
||||
label: 'Miles',
|
||||
value: _formatNumber(loco.mileage),
|
||||
label: 'Distance',
|
||||
value: distanceUnits.format(
|
||||
loco.mileage ?? 0,
|
||||
decimals: 1,
|
||||
),
|
||||
),
|
||||
_statPill(
|
||||
context,
|
||||
@@ -203,6 +209,7 @@ Future<void> showTractionDetails(
|
||||
LocoSummary loco,
|
||||
) async {
|
||||
final hasMileageOrTrips = _hasMileageOrTrips(loco);
|
||||
final distanceUnits = context.read<DistanceUnitService>();
|
||||
await showModalBottomSheet(
|
||||
context: context,
|
||||
isScrollControlled: true,
|
||||
@@ -275,7 +282,10 @@ Future<void> showTractionDetails(
|
||||
_detailRow(
|
||||
context,
|
||||
'Mileage',
|
||||
_formatNumber(loco.mileage ?? 0),
|
||||
distanceUnits.format(
|
||||
loco.mileage ?? 0,
|
||||
decimals: 1,
|
||||
),
|
||||
),
|
||||
_detailRow(
|
||||
context,
|
||||
@@ -368,8 +378,3 @@ bool _hasMileageOrTrips(LocoSummary loco) {
|
||||
final trips = loco.trips ?? loco.journeys ?? 0;
|
||||
return mileage > 0 || trips > 0;
|
||||
}
|
||||
|
||||
String _formatNumber(double? value) {
|
||||
if (value == null) return '0';
|
||||
return value.toStringAsFixed(1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user