import 'package:flutter/material.dart'; import '../../../../common/theme/theme.dart'; import '../../../components/field/date_range_picker_field.dart'; class InventorySliverTabBarDelegate extends SliverPersistentHeaderDelegate { final TabBar tabBar; final DateTime? startDate; final DateTime? endDate; final Function(DateTime?, DateTime?)? onDateRangeChanged; InventorySliverTabBarDelegate({ required this.tabBar, this.startDate, this.endDate, this.onDateRangeChanged, }); @override double get minExtent => 120; // Increased height to accommodate date picker @override double get maxExtent => 120; @override Widget build( BuildContext context, double shrinkOffset, bool overlapsContent, ) { return Container( decoration: BoxDecoration( color: AppColor.surface, boxShadow: [ BoxShadow( color: AppColor.black.withOpacity(0.05), blurRadius: 8, offset: const Offset(0, 2), ), ], ), padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 8), child: Column( children: [ // Date Range Picker Section if (onDateRangeChanged != null) Expanded( child: DateRangePickerField( maxDate: DateTime.now(), startDate: startDate, endDate: endDate, onChanged: onDateRangeChanged!, ), ), const SizedBox(height: 8), // Tab Bar Section Container( decoration: BoxDecoration( color: AppColor.background, borderRadius: BorderRadius.circular(30), border: Border.all( color: AppColor.primary.withOpacity(0.1), width: 1, ), ), child: tabBar, ), ], ), ); } @override bool shouldRebuild(InventorySliverTabBarDelegate oldDelegate) { return oldDelegate.startDate != startDate || oldDelegate.endDate != endDate || oldDelegate.tabBar != tabBar; } }