import { ReactNode } from "react"; import { FieldPath, FieldValues, RegisterOptions, UseFormRegisterReturn, } from "react-hook-form"; import { FieldLayout, type FormFieldLayoutProps } from "./FormFieldLayout.js"; import { FormInput } from "./FormInput.js"; export type FormFieldProps< TValues extends FieldValues, TName extends FieldPath = FieldPath, > = FormFieldLayoutProps & { name: TName; rules?: RegisterOptions; // more related than CommonFieldProps children: (props: UseFormRegisterReturn) => ReactNode; }; export function FormField< TValues extends FieldValues, TName extends FieldPath = FieldPath, >({ // FieldLayout props label, description, standaloneLabel, layout, tooltip, // FormField props name, rules, children, }: FormFieldProps) { return ( {children} ); } /* * Usage example: * * { * props => * } */