* chore: delete unused bookings hook * refactor: group bookings hooks in folder * refactor: rename useGetBooking, useGetBookings to useBooking, useBookings * refactor: booking inputs and outputs * chore: make bookings controller work with new inputs and outputs * make examples app work * refactor: deprecate fields instead of removing them * readd eventtypeid * swagger regenerate * make recurring booking backwards compatible * fix test * update changelog * swagger update * fix import * chore: update lock file
2.3 KiB
2.3 KiB
1.0.63
- 💥 BREAKING -
useGetBookinghook has been renamed touseBookinghook anduseGetBookingshook touseBookingsand the data returned has different structure. Here is example response fromuseBooking:
{
"id": 73,
"uid": "wPnPGRQCnEi8nij7eaQ5E1",
"title": "with confirmation and limit between Jane Doe and dojgqhylze-clxyyy21o0003sbk7yw5z6tzg-example",
"description": "",
"hosts": [
{
"id": 95,
"name": "Jane Doe",
"timeZone": "Europe/Madrid"
}
],
"status": "accepted",
"start": "2024-10-07T08:00:00.000Z",
"end": "2024-10-07T09:00:00.000Z",
"duration": 60,
"eventTypeId": 1207,
"eventType": {
"id": 1207,
"slug": "with-confirmation-and-limit"
},
"attendees": [
{
"name": "dojgqhylze-clxyyy21o0003sbk7yw5z6tzg-example",
"timeZone": "Europe/Madrid",
"language": "en",
"absent": false
}
],
"guests": [],
"meetingUrl": "integrations:daily",
"location": "integrations:daily",
"absentHost": false,
"bookingFieldsResponses": {
"email": "dojgqhylze@example.com",
"name": "dojgqhylze-clxyyy21o0003sbk7yw5z6tzg-example",
"guests": [],
"phone": "+37128224288",
"location": {
"value": "integrations:daily",
"optionValue": ""
}
}
}
It is important to note that useBooking can return one booking, one individual recurrence of recurring booking or if id of recurring booking is passed then array
of all recurrences within recurring booking. Response schema can be viewed in api docs https://cal.com/docs/api-reference/v2/bookings/get-a-booking and switching
between data response objects in the dropdown. This means that in your frontend you need to handle case if its an individual object or an array of bookings:
const { isLoading, data: booking, refetch } = useBooking((router.query.bookingUid as string) ?? "");
if (!Array.isArray(booking)) {
...
return abc
} else {
...
return xyz
}
- FIX - phone booking field not showing correctly https://linear.app/calcom/issue/CAL-4465/platform-fix-phone-booking-field
- FEAT - ability to hide booker event type details sidebar https://linear.app/calcom/issue/CAL-4443/platform-feat-booker-hide-event-details
- FEAT - make booker name and email booker properties read only if specified https://linear.app/calcom/issue/CAL-4441/platform-feat-make-name-and-email-fields-not-editable