destinations_tab.dart 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import 'package:flutter/material.dart';
  2. import 'package:flutter_riverpod/flutter_riverpod.dart';
  3. import 'package:ristoris/providers/customer_provider.dart';
  4. class DestinationsTab extends ConsumerWidget {
  5. final int idCliente;
  6. final ThemeData theme;
  7. const DestinationsTab({required this.idCliente, required this.theme});
  8. @override
  9. Widget build(BuildContext context, WidgetRef ref) {
  10. final destsAsync = ref.watch(customerDestinationsProvider(idCliente));
  11. return destsAsync.when(
  12. data: (dests) {
  13. if (dests.isEmpty) {
  14. return const Center(child: Text('Nessuna destinazione'));
  15. }
  16. return ListView.builder(
  17. itemCount: dests.length,
  18. itemBuilder: (_, i) => ListTile(
  19. leading: const Icon(Icons.location_on_outlined),
  20. title: Text(dests[i].descrizione ?? ''),
  21. subtitle: Text(
  22. '${dests[i].indirizzo ?? ""} ${dests[i].citta ?? ""}',
  23. ),
  24. ),
  25. );
  26. },
  27. loading: () => const Center(child: CircularProgressIndicator()),
  28. error: (e, _) => Center(child: Text('Errore: $e')),
  29. );
  30. }
  31. }