booking_calendar
booking_calendar copied to clipboard
Dont Display Booked Slots
If all the open slots for a day are booked, I dont want the day to be disabled. Is this possible?
I actually would prefer to disable a day if there were not appointments available for it. How do I do this?
Same, not sure if it is related to the location of the folder, or is it just a missed code snippet somewhere?
`final now = DateTime.now();
class Book extends StatefulWidget { const Book({Key? key}) : super(key: key);
@override State<Booking> createState() => _BookState(); }
class _BookState extends State<Book> {
CollectionReference bookings = FirebaseFirestore.instance.collection('book');
CollectionReference<DataBook> getBookingStream({required String placeId}) { return bookings.doc(placeId).collection('booking').withConverter<DataBook>( fromFirestore: (snapshots, _) => DataBook.fromJson(snapshots.data()!), toFirestore: (snapshots, _) => snapshots.toJson(), ); }
Stream
List<DateTimeRange> convertStreamResultFirebase( {required dynamic streamResult}) { List<DateTimeRange> converted = []; for (var i = 0; i < streamResult.size; i++) { final item = streamResult.docs[i].data(); converted.add(DateTimeRange(start: (item.bookingStart!), end: (item.bookingEnd!))); } return converted; }
Future
@override Widget build(BuildContext context) { return Scaffold( body: BookingCalendar( bookedSlotColor: Colors.red, convertStreamResultToDateTimeRanges: convertStreamResultFirebase, uploadBooking: uploadBookingFirebase, getBookingStream: getBookingStreamFirebase, bookingService: BookingService( bookingStart: DateTime.now(), bookingEnd: DateTime.utc(2023, 7, 20, 20, 18, 04), serviceDuration: 30, serviceName: "Meeting" ), ), ); } }`