// Active Delivery Banner Widget for Home Page // ignore_for_file: unused_import import 'package:flutter/material.dart'; import 'package:nearle/views/helpers/constants/Colorconstants.dart'; import 'package:nearle/views/helpers/constants/Font_constant.dart'; class ActiveDeliveryBanner extends StatelessWidget { final List> activeDeliveries; final Function(Map) onTap; const ActiveDeliveryBanner({ super.key, required this.activeDeliveries, required this.onTap, }); String _getDeliveryAddress(Map delivery) { final address = delivery['deliveryaddress'] ?? delivery['DeliveryAddress'] ?? delivery['address'] ?? ''; if (address.toString().length > 40) { return '${address.toString().substring(0, 40)}...'; } return address.toString(); } @override Widget build(BuildContext context) { if (activeDeliveries.isEmpty) { return const SizedBox.shrink(); } // Show first active delivery (or show count if multiple) final delivery = activeDeliveries.first; final count = activeDeliveries.length; return Container( margin: const EdgeInsets.all(12), decoration: BoxDecoration( color: Colors.green, borderRadius: BorderRadius.circular(12), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.2), blurRadius: 8, offset: const Offset(0, 4), ), ], ), child: Material( color: Colors.transparent, child: InkWell( onTap: () => onTap(delivery), borderRadius: BorderRadius.circular(12), child: Padding( padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14), child: Row( children: [ // Active indicator icon Container( padding: const EdgeInsets.all(8), decoration: BoxDecoration( color: Colors.white.withOpacity(0.2), borderRadius: BorderRadius.circular(8), ), child: const Icon( Icons.two_wheeler, color: Colors.white, size: 24, ), ), const SizedBox(width: 12), // Delivery info Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisSize: MainAxisSize.min, children: [ Row( children: [ Text( count > 1 ? '$count Active Deliveries' : 'Active Delivery', style: TextStyle( color: Colors.white, fontSize: 19, fontWeight: FontWeight.bold, fontFamily: FontConstants.fontFamily, ), ), if (count > 1) ...[ const SizedBox(width: 8), Container( padding: const EdgeInsets.symmetric( horizontal: 8, vertical: 2, ), decoration: BoxDecoration( color: Colors.white.withOpacity(0.3), borderRadius: BorderRadius.circular(12), ), child: Text( '$count', style: const TextStyle( color: Colors.white, fontSize: 12, fontWeight: FontWeight.bold, ), ), ), ], ], ), const SizedBox(height: 4), Text( _getDeliveryAddress(delivery), style: TextStyle( color: Colors.white.withOpacity(0.9), fontSize: 17, fontFamily: FontConstants.fontFamily, ), maxLines: 1, overflow: TextOverflow.ellipsis, ), ], ), ), // Arrow icon const Icon( Icons.arrow_forward_ios, color: Colors.white, size: 20, ), ], ), ), ), ), ); } }