import type { ReactElement, Ref } from "react"; import React, { forwardRef } from "react"; import type { FieldValues, SubmitHandler, UseFormReturn } from "react-hook-form"; import { FormProvider } from "react-hook-form"; import { getErrorFromUnknown } from "@calcom/lib/errors"; import { showToast } from "../../.."; type FormProps = { form: UseFormReturn; handleSubmit: SubmitHandler } & Omit< JSX.IntrinsicElements["form"], "onSubmit" >; const PlainForm = (props: FormProps, ref: Ref) => { const { form, handleSubmit, ...passThrough } = props; return (
{ event.preventDefault(); event.stopPropagation(); form .handleSubmit(handleSubmit)(event) .catch((err) => { // FIXME: Booking Pages don't have toast, so this error is never shown showToast(`${getErrorFromUnknown(err).message}`, "error"); }); }} {...passThrough}> {props.children}
); }; export const Form = forwardRef(PlainForm) as ( p: FormProps & { ref?: Ref } ) => ReactElement;