diff --git a/packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx b/packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx index bd0917e4e0..8c5f00a71d 100644 --- a/packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx +++ b/packages/features/bookings/Booker/components/BookEventForm/BookEventForm.tsx @@ -70,11 +70,15 @@ export const BookEventForm = ({ onCancel }: BookEventFormProps) => { const timeslot = useBookerStore((state) => state.selectedTimeslot); const recurringEventCount = useBookerStore((state) => state.recurringEventCount); const username = useBookerStore((state) => state.username); + const formValues = useBookerStore((state) => state.formValues); + const setFormValues = useBookerStore((state) => state.setFormValues); const isRescheduling = !!rescheduleUid && !!rescheduleBooking; const event = useEvent(); const eventType = event.data; const defaultValues = useMemo(() => { + if (Object.keys(formValues).length) return formValues; + if (!eventType?.bookingFields) { return {}; } @@ -128,7 +132,7 @@ export const BookEventForm = ({ onCancel }: BookEventFormProps) => { email: defaultUserValues.email, }; return defaults; - }, [eventType?.bookingFields, isRescheduling, rescheduleBooking, rescheduleUid]); + }, [eventType?.bookingFields, formValues, isRescheduling, rescheduleBooking, rescheduleUid]); const bookingFormSchema = z .object({ @@ -226,6 +230,8 @@ export const BookEventForm = ({ onCancel }: BookEventFormProps) => { ); const bookEvent = (values: BookingFormValues) => { + // Clears form values stored in store, so old values won't stick around. + setFormValues({}); bookingForm.clearErrors(); // It shouldn't be possible that this method is fired without having event data, @@ -280,7 +286,18 @@ export const BookEventForm = ({ onCancel }: BookEventFormProps) => { return (