import 'package:flutter/material.dart'; import 'package:hl_lieferservice/model/delivery.dart'; import 'package:hl_lieferservice/feature/delivery/detail/presentation/delivery_detail_page.dart'; class DeliveryListItem extends StatelessWidget { final Delivery delivery; final double distance; const DeliveryListItem({super.key, required this.delivery, required this.distance}); Widget _leading(BuildContext context) { if (delivery.state == DeliveryState.finished) { return Icon(Icons.check_circle, color: Colors.green); } if (delivery.state == DeliveryState.canceled) { return Icon(Icons.cancel_rounded, color: Colors.red); } return Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ Icon(Icons.location_on, color: Theme.of(context).primaryColor), Text("${distance.toStringAsFixed(2)}km"), ], ); } void _goToDelivery(BuildContext context) { Navigator.of(context).push( MaterialPageRoute( builder: (context) => DeliveryDetail(delivery: delivery), ), ); } @override Widget build(BuildContext context) { return ListTile( title: Text( delivery.customer.name, style: Theme.of(context).textTheme.titleMedium, ), leading: _leading(context), tileColor: Theme.of(context).colorScheme.surfaceContainerHigh, subtitle: Text(delivery.customer.address.toString()), trailing: Icon(Icons.arrow_forward_ios), onTap: () => _goToDelivery(context), ); } }