import 'package:flutter/material.dart'; import '../models/delivery.dart'; import '../l10n/app_localizations.dart'; import 'delivery_list_item.dart'; /// A unified list view for displaying deliveries with selection and action support. /// /// This component provides a consistent delivery list experience across the app, /// supporting both expanded and collapsed states for responsive sidebar layouts. class UnifiedDeliveryListView extends StatelessWidget { final List deliveries; final Delivery? selectedDelivery; final ScrollController scrollController; final ValueChanged onDeliverySelected; final Function(Delivery, String) onItemAction; final bool isCollapsed; const UnifiedDeliveryListView({ super.key, required this.deliveries, this.selectedDelivery, required this.scrollController, required this.onDeliverySelected, required this.onItemAction, this.isCollapsed = false, }); @override Widget build(BuildContext context) { final l10n = AppLocalizations.of(context); if (deliveries.isEmpty) { return Center( child: Text(l10n.noDeliveries), ); } return RefreshIndicator( onRefresh: () async { // Trigger refresh via provider }, child: ListView.builder( controller: scrollController, padding: const EdgeInsets.only(top: 4, bottom: 8), physics: const AlwaysScrollableScrollPhysics(), itemCount: deliveries.length, itemBuilder: (context, index) { final delivery = deliveries[index]; return DeliveryListItem( delivery: delivery, isSelected: selectedDelivery?.id == delivery.id, onTap: () => onDeliverySelected(delivery), onCall: () => onItemAction(delivery, 'call'), onAction: (action) => onItemAction(delivery, action), animationIndex: index, isCollapsed: isCollapsed, ); }, ), ); } }