From fba095dd98e954e141b8fdf285165733c28ef9bc Mon Sep 17 00:00:00 2001 From: Hemant M Mehta Date: Fri, 12 Sep 2025 21:02:36 +0530 Subject: [PATCH 1/8] refactor: booking-list-state-management closes: #22214 --- .../components/booking/BookingListItem.tsx | 79 +++++++++---------- .../booking/hooks/useBookingItemState.ts | 77 ++++++++++++++++++ .../components/dialog/ChargeCardDialog.tsx | 7 +- .../BookEventForm/BookingFields.test.tsx | 2 +- .../atoms/src/components/ui/dialog.tsx | 2 +- 5 files changed, 121 insertions(+), 46 deletions(-) create mode 100644 apps/web/components/booking/hooks/useBookingItemState.ts diff --git a/apps/web/components/booking/BookingListItem.tsx b/apps/web/components/booking/BookingListItem.tsx index dea75e057cd416..81fc58dd9a4bac 100644 --- a/apps/web/components/booking/BookingListItem.tsx +++ b/apps/web/components/booking/BookingListItem.tsx @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ import Link from "next/link"; import { useState } from "react"; import { Controller, useFieldArray, useForm } from "react-hook-form"; @@ -65,6 +66,7 @@ import { shouldShowRecurringCancelAction, type BookingActionContext, } from "./bookingActions"; +import { useBookingItemState } from "./hooks/useBookingItemState"; type BookingListingStatus = RouterInputs["viewer"]["bookings"]["get"]["filters"]["status"]; @@ -119,19 +121,16 @@ const isBookingReroutable = (booking: ParsedBooking): booking is ReroutableBooki function BookingListItem(booking: BookingItemProps) { const parsedBooking = buildParsedBooking(booking); - const { userTimeZone, userTimeFormat, userEmail } = booking.loggedInUser; const { t, i18n: { language }, } = useLocale(); const utils = trpc.useUtils(); - const [rejectionReason, setRejectionReason] = useState(""); - const [rejectionDialogIsOpen, setRejectionDialogIsOpen] = useState(false); - const [chargeCardDialogIsOpen, setChargeCardDialogIsOpen] = useState(false); - const [viewRecordingsDialogIsOpen, setViewRecordingsDialogIsOpen] = useState(false); - const [meetingSessionDetailsDialogIsOpen, setMeetingSessionDetailsDialogIsOpen] = useState(false); - const [isNoShowDialogOpen, setIsNoShowDialogOpen] = useState(false); + + // Use our centralized state hook + const { dialogState, openDialog, closeDialog, rejectionReason, setRejectionReason } = useBookingItemState(); + const cardCharged = booking?.payment[0]?.success; const attendeeList = booking.attendees.map((attendee) => { @@ -158,7 +157,7 @@ function BookingListItem(booking: BookingItemProps) { const mutation = trpc.viewer.bookings.confirm.useMutation({ onSuccess: (data) => { if (data?.status === BookingStatus.REJECTED) { - setRejectionDialogIsOpen(false); + closeDialog("rejection"); showToast(t("booking_rejection_success"), "success"); } else { showToast(t("booking_confirmation_success"), "success"); @@ -260,7 +259,7 @@ function BookingListItem(booking: BookingItemProps) { ...action, onClick: action.id === "reject" - ? () => setRejectionDialogIsOpen(true) + ? () => openDialog("rejection") : action.id === "confirm" ? () => bookingConfirm(true) : undefined, @@ -358,15 +357,15 @@ function BookingListItem(booking: BookingItemProps) { ...action, onClick: action.id === "reschedule_request" - ? () => setIsOpenRescheduleDialog(true) + ? () => openDialog("reschedule") : action.id === "reroute" - ? () => setRerouteDialogIsOpen(true) + ? () => openDialog("reroute") : action.id === "change_location" - ? () => setIsOpenLocationDialog(true) + ? () => openDialog("editLocation") : action.id === "add_members" - ? () => setIsOpenAddGuestsDialog(true) + ? () => openDialog("addGuests") : action.id === "reassign" - ? () => setIsOpenReassignDialog(true) + ? () => openDialog("reassign") : undefined, })) as ActionType[]; @@ -375,11 +374,11 @@ function BookingListItem(booking: BookingItemProps) { ...action, onClick: action.id === "view_recordings" - ? () => setViewRecordingsDialogIsOpen(true) + ? () => openDialog("viewRecordings") : action.id === "meeting_session_details" - ? () => setMeetingSessionDetailsDialogIsOpen(true) + ? () => openDialog("meetingSessionDetails") : action.id === "charge_card" - ? () => setChargeCardDialogIsOpen(true) + ? () => openDialog("chargeCard") : action.id === "no_show" ? () => { if (attendeeList.length === 1) { @@ -390,7 +389,7 @@ function BookingListItem(booking: BookingItemProps) { }); return; } - setIsNoShowDialogOpen(true); + openDialog("noShowAttendees"); } : undefined, disabled: @@ -402,14 +401,14 @@ function BookingListItem(booking: BookingItemProps) { return ( <> closeDialog("reschedule")} bookingUId={booking.uid} /> - {isOpenReassignDialog && ( + {dialogState.reassign && ( closeDialog("reassign")} bookingId={booking.id} teamId={booking.eventType?.team?.id || 0} bookingFromRoutingForm={isBookingFromRoutingForm} @@ -418,19 +417,19 @@ function BookingListItem(booking: BookingItemProps) { closeDialog("editLocation")} teamId={booking.eventType?.team?.id} /> closeDialog("addGuests")} bookingId={booking.id} /> {booking.paid && booking.payment[0] && ( closeDialog("chargeCard")} bookingId={booking.id} paymentAmount={booking.payment[0].amount} paymentCurrency={booking.payment[0].currency} @@ -439,28 +438,28 @@ function BookingListItem(booking: BookingItemProps) { {isCalVideoLocation && ( closeDialog("viewRecordings")} timeFormat={userTimeFormat ?? null} /> )} - {isCalVideoLocation && meetingSessionDetailsDialogIsOpen && ( + {isCalVideoLocation && dialogState.meetingSessionDetails && ( closeDialog("meetingSessionDetails")} timeFormat={userTimeFormat ?? null} /> )} - {isNoShowDialogOpen && ( + {dialogState.noShowAttendees && ( closeDialog("noShowAttendees")} + isOpen={dialogState.noShowAttendees} /> )} - + closeDialog("rejection")}>
closeDialog("reroute")} booking={{ ...parsedBooking, eventType: parsedBooking.eventType }} /> )} diff --git a/apps/web/components/booking/hooks/useBookingItemState.ts b/apps/web/components/booking/hooks/useBookingItemState.ts new file mode 100644 index 00000000000000..2299e23f69c1f7 --- /dev/null +++ b/apps/web/components/booking/hooks/useBookingItemState.ts @@ -0,0 +1,77 @@ +import { useState } from "react"; + +export type DialogState = { + reschedule: boolean; + reassign: boolean; + editLocation: boolean; + addGuests: boolean; + chargeCard: boolean; + viewRecordings: boolean; + meetingSessionDetails: boolean; + noShowAttendees: boolean; + rejection: boolean; + reroute: boolean; +}; + +export function useBookingItemState() { + const [rejectionReason, setRejectionReason] = useState(""); + const [dialogState, setDialogState] = useState({ + reschedule: false, + reassign: false, + editLocation: false, + addGuests: false, + chargeCard: false, + viewRecordings: false, + meetingSessionDetails: false, + noShowAttendees: false, + rejection: false, + reroute: false, + }); + + const openDialog = (dialog: keyof DialogState) => { + setDialogState((prevState) => ({ + ...prevState, + [dialog]: true, + })); + }; + + const closeDialog = (dialog: keyof DialogState) => { + setDialogState((prevState) => ({ + ...prevState, + [dialog]: false, + })); + }; + + const toggleDialog = (dialog: keyof DialogState) => { + setDialogState((prevState) => ({ + ...prevState, + [dialog]: !prevState[dialog], + })); + }; + + // Helper function to reset all dialogs (useful when one action should close others) + const resetDialogs = () => { + setDialogState({ + reschedule: false, + reassign: false, + editLocation: false, + addGuests: false, + chargeCard: false, + viewRecordings: false, + meetingSessionDetails: false, + noShowAttendees: false, + rejection: false, + reroute: false, + }); + }; + + return { + dialogState, + openDialog, + closeDialog, + toggleDialog, + resetDialogs, + rejectionReason, + setRejectionReason, + }; +} diff --git a/apps/web/components/dialog/ChargeCardDialog.tsx b/apps/web/components/dialog/ChargeCardDialog.tsx index 1de62f399eb87a..8054f997daa112 100644 --- a/apps/web/components/dialog/ChargeCardDialog.tsx +++ b/apps/web/components/dialog/ChargeCardDialog.tsx @@ -1,4 +1,3 @@ -import type { Dispatch, SetStateAction } from "react"; import { useState } from "react"; import { Dialog } from "@calcom/features/components/controlled-dialog"; @@ -9,15 +8,15 @@ import { DialogContent, DialogFooter, DialogHeader, DialogClose } from "@calcom/ import { Icon } from "@calcom/ui/components/icon"; import { showToast } from "@calcom/ui/components/toast"; -interface IRescheduleDialog { +interface IChargeCardDialog { isOpenDialog: boolean; - setIsOpenDialog: Dispatch>; + setIsOpenDialog: (isOpen: boolean) => void; bookingId: number; paymentAmount: number; paymentCurrency: string; } -export const ChargeCardDialog = (props: IRescheduleDialog) => { +export const ChargeCardDialog = (props: IChargeCardDialog) => { const { t } = useLocale(); const utils = trpc.useUtils(); const { isOpenDialog, setIsOpenDialog, bookingId } = props; diff --git a/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx b/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx index f21af3756ffd0a..01b1662d7b9696 100644 --- a/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx +++ b/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx @@ -1,4 +1,3 @@ -import { TooltipProvider } from "@radix-ui/react-tooltip"; import { render, fireEvent, screen } from "@testing-library/react"; import * as React from "react"; import type { UseFormReturn } from "react-hook-form"; @@ -6,6 +5,7 @@ import { FormProvider, useForm } from "react-hook-form"; import { expect, vi } from "vitest"; import PhoneInput from "@calcom/features/components/phone-input/PhoneInput"; +import { TooltipProvider } from "@calcom/ui/components/tooltip"; import { getBookingFieldsWithSystemFields } from "../../../lib/getBookingFields"; import { BookingFields } from "./BookingFields"; diff --git a/packages/platform/atoms/src/components/ui/dialog.tsx b/packages/platform/atoms/src/components/ui/dialog.tsx index 4259ae1a42c9c3..36753e97dfe11a 100644 --- a/packages/platform/atoms/src/components/ui/dialog.tsx +++ b/packages/platform/atoms/src/components/ui/dialog.tsx @@ -51,7 +51,7 @@ DialogOverlay.displayName = DialogPrimitives.Overlay.displayName; const DialogContent = React.forwardRef< React.ElementRef, - React.ComponentPropsWithoutRef + React.ComponentPropsWithoutRef & { enableOverflow?: boolean } >(({ className, children, ...props }, ref) => ( <> From 5552fc0919a8bebe848def6e368f708afdceb8f5 Mon Sep 17 00:00:00 2001 From: Hemant M Mehta Date: Fri, 12 Sep 2025 21:51:54 +0530 Subject: [PATCH 2/8] coderabbit suggestion Signed-off-by: Hemant M Mehta --- .../components/booking/BookingListItem.tsx | 29 +++++++++---------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/apps/web/components/booking/BookingListItem.tsx b/apps/web/components/booking/BookingListItem.tsx index 81fc58dd9a4bac..e12ac893e33ea3 100644 --- a/apps/web/components/booking/BookingListItem.tsx +++ b/apps/web/components/booking/BookingListItem.tsx @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ import Link from "next/link"; import { useState } from "react"; import { Controller, useFieldArray, useForm } from "react-hook-form"; @@ -284,11 +283,7 @@ function BookingListItem(booking: BookingItemProps) { .tz(userTimeZone) .locale(language) .format(isUpcoming ? (isDifferentYear ? "ddd, D MMM YYYY" : "ddd, D MMM") : "D MMMM YYYY"); - const [isOpenRescheduleDialog, setIsOpenRescheduleDialog] = useState(false); - const [isOpenReassignDialog, setIsOpenReassignDialog] = useState(false); - const [isOpenSetLocationDialog, setIsOpenLocationDialog] = useState(false); - const [isOpenAddGuestsDialog, setIsOpenAddGuestsDialog] = useState(false); - const [rerouteDialogIsOpen, setRerouteDialogIsOpen] = useState(false); + const [setIsOpenLocationDialog] = useState(false); const setLocationMutation = trpc.viewer.bookings.editLocation.useMutation({ onSuccess: () => { showToast(t("location_updated"), "success"); @@ -402,13 +397,13 @@ function BookingListItem(booking: BookingItemProps) { <> closeDialog("reschedule")} + setIsOpenDialog={(open) => (open ? openDialog("reschedule") : closeDialog("reschedule"))} bookingUId={booking.uid} /> {dialogState.reassign && ( closeDialog("reassign")} + setIsOpenDialog={(open) => (open ? openDialog("reassign") : closeDialog("reassign"))} bookingId={booking.id} teamId={booking.eventType?.team?.id || 0} bookingFromRoutingForm={isBookingFromRoutingForm} @@ -418,18 +413,18 @@ function BookingListItem(booking: BookingItemProps) { booking={booking} saveLocation={saveLocation} isOpenDialog={dialogState.editLocation} - setShowLocationModal={() => closeDialog("editLocation")} + setShowLocationModal={(open) => (open ? openDialog("editLocation") : closeDialog("editLocation"))} teamId={booking.eventType?.team?.id} /> closeDialog("addGuests")} + setIsOpenDialog={(open) => (open ? openDialog("addGuests") : closeDialog("addGuests"))} bookingId={booking.id} /> {booking.paid && booking.payment[0] && ( closeDialog("chargeCard")} + setIsOpenDialog={(open) => (open ? openDialog("chargeCard") : closeDialog("chargeCard"))} bookingId={booking.id} paymentAmount={booking.payment[0].amount} paymentCurrency={booking.payment[0].currency} @@ -439,7 +434,7 @@ function BookingListItem(booking: BookingItemProps) { closeDialog("viewRecordings")} + setIsOpenDialog={(open) => (open ? openDialog("viewRecordings") : closeDialog("viewRecordings"))} timeFormat={userTimeFormat ?? null} /> )} @@ -447,7 +442,9 @@ function BookingListItem(booking: BookingItemProps) { closeDialog("meetingSessionDetails")} + setIsOpenDialog={(open) => + open ? openDialog("meetingSessionDetails") : closeDialog("meetingSessionDetails") + } timeFormat={userTimeFormat ?? null} /> )} @@ -455,11 +452,13 @@ function BookingListItem(booking: BookingItemProps) { closeDialog("noShowAttendees")} + setIsOpen={(open) => (open ? openDialog("noShowAttendees") : closeDialog("noShowAttendees"))} isOpen={dialogState.noShowAttendees} /> )} - closeDialog("rejection")}> + (open ? openDialog("rejection") : closeDialog("rejection"))}>
Date: Fri, 12 Sep 2025 22:26:12 +0530 Subject: [PATCH 3/8] fix: typechecks Signed-off-by: Hemant M Mehta --- apps/web/components/booking/BookingListItem.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/apps/web/components/booking/BookingListItem.tsx b/apps/web/components/booking/BookingListItem.tsx index e12ac893e33ea3..560c930e6a4f69 100644 --- a/apps/web/components/booking/BookingListItem.tsx +++ b/apps/web/components/booking/BookingListItem.tsx @@ -1,3 +1,6 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ + +/* eslint-disable prettier/prettier */ import Link from "next/link"; import { useState } from "react"; import { Controller, useFieldArray, useForm } from "react-hook-form"; @@ -283,7 +286,8 @@ function BookingListItem(booking: BookingItemProps) { .tz(userTimeZone) .locale(language) .format(isUpcoming ? (isDifferentYear ? "ddd, D MMM YYYY" : "ddd, D MMM") : "D MMMM YYYY"); - const [setIsOpenLocationDialog] = useState(false); + const [, setIsOpenLocationDialog] = useState(false); + // const [setIsOpenLocationDialog] = useState(false); const setLocationMutation = trpc.viewer.bookings.editLocation.useMutation({ onSuccess: () => { showToast(t("location_updated"), "success"); @@ -816,7 +820,7 @@ const RecurringBookingsTooltip = ({ return ( recurringDate >= now && !booking.recurringInfo?.bookings[BookingStatus.CANCELLED] - .map((date) => date.toString()) + .map((date: { toString: () => any }) => date.toString()) .includes(recurringDate.toString()) ); }).length; @@ -834,7 +838,7 @@ const RecurringBookingsTooltip = ({ const pastOrCancelled = aDate < now || booking.recurringInfo?.bookings[BookingStatus.CANCELLED] - .map((date) => date.toString()) + .map((date: { toString: () => any }) => date.toString()) .includes(aDate.toString()); return (

From de8ea0df3e9c217e6885092277cdf61f72924030 Mon Sep 17 00:00:00 2001 From: Hemant M Mehta Date: Fri, 12 Sep 2025 22:55:01 +0530 Subject: [PATCH 4/8] fix: unit test Signed-off-by: Hemant M Mehta --- .../Booker/components/BookEventForm/BookingFields.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx b/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx index 01b1662d7b9696..3f46a86e7aaf78 100644 --- a/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx +++ b/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx @@ -11,7 +11,7 @@ import { getBookingFieldsWithSystemFields } from "../../../lib/getBookingFields" import { BookingFields } from "./BookingFields"; // Mock PhoneInput to avoid calling the lazy import -vi.mock("@calcom/features/components/phone-input", () => { +vi.mock("@calcom/features/components/phone-input/PhoneInput", () => { return { default: PhoneInput, }; From e35968f0e02e0a9eaab09f1811386e43aa72bb5b Mon Sep 17 00:00:00 2001 From: Hemant M Mehta Date: Fri, 12 Sep 2025 23:18:03 +0530 Subject: [PATCH 5/8] fix: unit test Signed-off-by: Hemant M Mehta --- .../Booker/components/BookEventForm/BookingFields.test.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx b/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx index 3f46a86e7aaf78..141b758c93ac50 100644 --- a/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx +++ b/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx @@ -4,7 +4,6 @@ import type { UseFormReturn } from "react-hook-form"; import { FormProvider, useForm } from "react-hook-form"; import { expect, vi } from "vitest"; -import PhoneInput from "@calcom/features/components/phone-input/PhoneInput"; import { TooltipProvider } from "@calcom/ui/components/tooltip"; import { getBookingFieldsWithSystemFields } from "../../../lib/getBookingFields"; @@ -13,7 +12,7 @@ import { BookingFields } from "./BookingFields"; // Mock PhoneInput to avoid calling the lazy import vi.mock("@calcom/features/components/phone-input/PhoneInput", () => { return { - default: PhoneInput, + default: () =>

, }; }); From d217fa68666018b11b1329a7380d6337aa775c83 Mon Sep 17 00:00:00 2001 From: Hemant M Mehta Date: Sat, 13 Sep 2025 09:25:40 +0530 Subject: [PATCH 6/8] fix: unit test Signed-off-by: Hemant M Mehta --- .../Booker/components/BookEventForm/BookingFields.test.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx b/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx index 141b758c93ac50..bfaea97b55ba69 100644 --- a/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx +++ b/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx @@ -1,11 +1,10 @@ +import { TooltipProvider } from "@radix-ui/react-tooltip"; import { render, fireEvent, screen } from "@testing-library/react"; import * as React from "react"; import type { UseFormReturn } from "react-hook-form"; import { FormProvider, useForm } from "react-hook-form"; import { expect, vi } from "vitest"; -import { TooltipProvider } from "@calcom/ui/components/tooltip"; - import { getBookingFieldsWithSystemFields } from "../../../lib/getBookingFields"; import { BookingFields } from "./BookingFields"; From 7bdbf6c4baa69f80e3437effb1b58f0fb9542c89 Mon Sep 17 00:00:00 2001 From: Hemant M Mehta Date: Sat, 13 Sep 2025 09:35:12 +0530 Subject: [PATCH 7/8] fix: test case Signed-off-by: Hemant M Mehta --- .../Booker/components/BookEventForm/BookingFields.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx b/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx index bfaea97b55ba69..141b758c93ac50 100644 --- a/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx +++ b/packages/features/bookings/Booker/components/BookEventForm/BookingFields.test.tsx @@ -1,10 +1,11 @@ -import { TooltipProvider } from "@radix-ui/react-tooltip"; import { render, fireEvent, screen } from "@testing-library/react"; import * as React from "react"; import type { UseFormReturn } from "react-hook-form"; import { FormProvider, useForm } from "react-hook-form"; import { expect, vi } from "vitest"; +import { TooltipProvider } from "@calcom/ui/components/tooltip"; + import { getBookingFieldsWithSystemFields } from "../../../lib/getBookingFields"; import { BookingFields } from "./BookingFields"; From 84412bae4870dbc32f87a9341c907adec31c06af Mon Sep 17 00:00:00 2001 From: Hemant M Mehta Date: Wed, 24 Sep 2025 18:28:37 +0530 Subject: [PATCH 8/8] fix: unit test Signed-off-by: Hemant M Mehta --- .../bookings/Booker/components/BookEventForm/BookingFields.tsx | 2 +- packages/features/form-builder/FormBuilder.test.tsx | 3 +-- packages/features/form-builder/FormBuilderField.test.tsx | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx b/packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx index 6197e948af73a4..a717d031e1789e 100644 --- a/packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx +++ b/packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx @@ -5,7 +5,7 @@ import { getOrganizerInputLocationTypes } from "@calcom/app-store/locations"; import { useBookerStore } from "@calcom/features/bookings/Booker/store"; import type { GetBookingType } from "@calcom/features/bookings/lib/get-booking"; import getLocationOptionsForSelect from "@calcom/features/bookings/lib/getLocationOptionsForSelect"; -import { FormBuilderField } from "@calcom/features/form-builder/FormBuilderField"; +import FormBuilderField from "@calcom/features/form-builder/FormBuilderField"; import { fieldTypesConfigMap } from "@calcom/features/form-builder/fieldTypes"; import { fieldsThatSupportLabelAsSafeHtml } from "@calcom/features/form-builder/fieldsThatSupportLabelAsSafeHtml"; import { useLocale } from "@calcom/lib/hooks/useLocale"; diff --git a/packages/features/form-builder/FormBuilder.test.tsx b/packages/features/form-builder/FormBuilder.test.tsx index c47efa97a5d2b4..59c8e5bdf5ee1c 100644 --- a/packages/features/form-builder/FormBuilder.test.tsx +++ b/packages/features/form-builder/FormBuilder.test.tsx @@ -5,7 +5,7 @@ import * as React from "react"; import { FormProvider, useForm } from "react-hook-form"; import { vi } from "vitest"; -import { FormBuilder } from "./FormBuilder"; +import FormBuilder from "./FormBuilder"; import { mockProps, verifier, @@ -219,7 +219,6 @@ describe("FormBuilder", () => { ], }); - verifier.verifyOptionPrices({ identifier, prices: [20, 25] }); }); diff --git a/packages/features/form-builder/FormBuilderField.test.tsx b/packages/features/form-builder/FormBuilderField.test.tsx index ea804eb0e85ffb..cba4b08f539f49 100644 --- a/packages/features/form-builder/FormBuilderField.test.tsx +++ b/packages/features/form-builder/FormBuilderField.test.tsx @@ -4,7 +4,7 @@ import { FormProvider, useForm } from "react-hook-form"; import type { UseFormReturn } from "react-hook-form"; import { vi } from "vitest"; -import { FormBuilderField } from "./FormBuilderField"; +import FormBuilderField from "./FormBuilderField"; vi.mock("@formkit/auto-animate/react", () => ({ useAutoAnimate: () => [null],