import 'package:anyway/pages/current_trip.dart'; import 'package:anyway/utils/load_trips.dart'; import 'package:flutter/material.dart'; import 'package:anyway/structs/trip.dart'; class TripsOverview extends StatefulWidget { final SavedTrips trips; const TripsOverview({ super.key, required this.trips, }); @override State createState() => _TripsOverviewState(); } class _TripsOverviewState extends State { Widget listBuild (BuildContext context, SavedTrips trips) { List children; List items = trips.trips; children = List.generate(items.length, (index) { Trip trip = items[index]; return ListTile( title: FutureBuilder( future: trip.cityName, builder: (BuildContext context, AsyncSnapshot snapshot) { if (snapshot.hasData) { return Text("Trip to ${snapshot.data}"); } else if (snapshot.hasError) { return Text("Error: ${snapshot.error}"); } else { return const Text("Trip to ..."); } }, ), leading: Icon(Icons.pin_drop), onTap: () { Navigator.of(context).push( MaterialPageRoute( builder: (context) => TripPage(trip: trip) ) ); }, ); }); return ListView( children: children, padding: const EdgeInsets.only(top: 0), ); } @override Widget build(BuildContext context) { return ListenableBuilder( listenable: widget.trips, builder: (BuildContext context, Widget? child) { return listBuild(context, widget.trips); } ); } }