major refactor
All checks were successful
Release / meta (push) Successful in 7s
Release / linux-build (push) Successful in 6m36s
Release / android-build (push) Successful in 15m50s
Release / release-master (push) Successful in 23s
Release / release-dev (push) Successful in 25s

This commit is contained in:
2025-12-16 16:49:39 +00:00
parent 4a6aee8a15
commit 80be797322
23 changed files with 1517 additions and 1414 deletions

View File

@@ -0,0 +1,73 @@
import 'package:flutter/material.dart';
class RouteSummaryWidget extends StatelessWidget {
final double distance;
final VoidCallback onDetailsPressed;
const RouteSummaryWidget({
super.key,
required this.distance,
required this.onDetailsPressed,
});
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.all(16),
child: Row(
children: [
Expanded(
child: Text(
"Total Distance: ${distance.toStringAsFixed(2)} mi",
style: Theme.of(context).textTheme.titleMedium,
),
),
TextButton(
onPressed: onDetailsPressed,
child: const Text("View Details"),
),
],
),
);
}
}
class RouteDetailsView extends StatelessWidget {
final List<String> route;
final List<double> costs;
final VoidCallback onBack;
const RouteDetailsView({
super.key,
required this.route,
required this.costs,
required this.onBack,
});
@override
Widget build(BuildContext context) {
return Column(
children: [
Align(
alignment: Alignment.centerLeft,
child: TextButton.icon(
onPressed: onBack,
icon: const Icon(Icons.arrow_back),
label: const Text('Back'),
),
),
Expanded(
child: ListView.builder(
itemCount: route.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(route[index]),
trailing: Text("${costs[index].toStringAsFixed(2)} mi"),
);
},
),
),
],
);
}
}