'use client' import { Controller, type FieldValues, type FieldPath, type Control, type ControllerRenderProps, type FieldError, } from 'react-hook-form' import { Field, FieldLabel, FieldDescription, FieldError as FieldErrorDisplay, } from '@/components/ui/field' interface FormFieldProps = FieldPath> { control: Control name: TName label?: string description?: string required?: boolean render: (props: { field: ControllerRenderProps error?: FieldError invalid: boolean }) => React.ReactNode } export function FormField = FieldPath>({ control, name, label, description, required, render, }: FormFieldProps) { return ( ( {label && ( {label} {required && *} )} {render({ field, error: fieldState.error, invalid: fieldState.invalid })} {description && !fieldState.error && ( {description} )} {fieldState.error && ( )} )} /> ) }