mui-rhf-integration
Version:
React Hook Form integration for MUI with strict TypeScript handling based on form context.
20 lines (19 loc) • 1.35 kB
TypeScript
import { FormControlProps, FormLabelProps, RadioGroupProps } from '@mui/material';
import { ReactNode } from 'react';
import { Control, FieldPath, FieldValues, RegisterOptions } from 'react-hook-form';
export type RadioOption = {
value: string;
label: ReactNode;
};
export type RhfRadioGroupProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TContext = any, TTransformedValues = TFieldValues> = Omit<FormControlProps, "error" | "ref"> & {
control: Control<TFieldValues, TContext, TTransformedValues>;
name: TName;
rules?: Omit<RegisterOptions<NoInfer<TFieldValues>, NoInfer<TName>>, "valueAsNumber" | "valueAsDate" | "setValueAs" | "disabled">;
label: string;
options: RadioOption[];
helperText?: string;
formLabelProps?: FormLabelProps;
radioGroupProps?: Omit<RadioGroupProps, "name" | "onChange" | "onBlur" | "value">;
};
declare const RhfRadioGroup: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>, TContext = any, TTransformedValues = TFieldValues>({ control, name, rules, label, options, helperText, formLabelProps, radioGroupProps, ...formControlProps }: RhfRadioGroupProps<TFieldValues, TName, TContext, TTransformedValues>) => ReactNode;
export default RhfRadioGroup;