import { cn } from "@/lib/utils"; import { ComponentPropsWithoutRef } from "react"; import { FieldValues, UseFormReturn, Controller, ControllerRenderProps, ControllerFieldState, FieldPath, UseFormStateReturn, } from "react-hook-form"; type FormControlProps< T extends FieldValues, U extends FieldPath = FieldPath > = ComponentPropsWithoutRef<"div"> & { form: UseFormReturn; name: FieldPath; title?: string; render: ( field: ControllerRenderProps, fieldProps: { fieldState: ControllerFieldState; formState: UseFormStateReturn; } ) => React.ReactElement; }; const FormControl = ({ form, name, title, className, render, }: FormControlProps) => { return ( (
{title ? : null} {render(field, { fieldState, formState })} {fieldState.error ? ( ) : null}
)} /> ); }; export default FormControl;