import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import '../../../../utils/helpers/app_size.dart'; import '../../../../utils/resource_manager/color_manager.dart'; import '../../../shared_widgets/default_button.dart'; import '../blocs/past_bookings_bloc/past_bookings_bloc.dart'; import 'booking_card_widget.dart'; class PastBookingsWidget extends StatelessWidget { const PastBookingsWidget({super.key}); @override Widget build(BuildContext context) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( 'Past Bookings', style: TextStyle( fontSize: 15, color: ColorsManager.grayColor, fontWeight: FontWeight.bold, ), ), SizedBox( height: 10, ), BlocBuilder( builder: (context, state) { if (state is PastBookingLoadingState) { //should use CustomLoadingWidget return CircularProgressIndicator(); } else if (state is PastBookingErrorState) { //shold use CustomErrorWidget return DefaultButton( onPressed: () => context .read() .add(GetPastBookingsEvent()), child: Text('Try again'), ); } else if (state is PastBookingLoadedState) { return SizedBox( height: deviceHeight(context) * 0.3, child: state.pastBookings.isEmpty ? Text('You Dont Have past Bookings') : ListView.separated( separatorBuilder: (context, index) => SizedBox( height: 10, ), itemCount: state.pastBookings.length, itemBuilder: (context, index) { final pastBooking = state.pastBookings[index]; return BookingCardWidget(bookingModel: pastBooking); }, ), ); } else { return SizedBox(); } }, ) ], ); } }