react-hook-form-6
Version:
Latest version 6 of react-hook-form
30 lines (29 loc) • 1.56 kB
TypeScript
import * as React from 'react';
import { UseFormMethods, FieldValues, FieldName, Control, Assign, InputState } from './';
import { RegisterOptions } from './validator';
export declare type FormProviderProps<TFieldValues extends FieldValues = FieldValues> = {
children: React.ReactNode;
} & UseFormMethods<TFieldValues>;
declare type AsProps<TAs> = TAs extends undefined ? {} : TAs extends React.ReactElement ? Record<string, any> : TAs extends React.ComponentType<infer P> ? P : TAs extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[TAs] : never;
export declare type ControllerRenderProps<TFieldValues extends FieldValues = FieldValues> = {
onChange: (...event: any[]) => void;
onBlur: () => void;
value: any;
name: FieldName<Control<TFieldValues>>;
ref: React.MutableRefObject<any>;
};
export declare type UseControllerOptions<TFieldValues extends FieldValues = FieldValues> = {
name: FieldName<TFieldValues>;
rules?: Exclude<RegisterOptions, 'valueAsNumber' | 'valueAsDate' | 'setValueAs'>;
onFocus?: () => void;
defaultValue?: unknown;
control?: Control<TFieldValues>;
};
export declare type ControllerProps<TAs extends React.ReactElement | React.ComponentType<any> | 'input' | 'select' | 'textarea', TFieldValues extends FieldValues = FieldValues> = Assign<({
as: TAs;
render?: undefined;
} | {
as?: undefined;
render: (field: ControllerRenderProps<TFieldValues>, state: InputState) => React.ReactElement;
}) & UseControllerOptions, AsProps<TAs>>;
export {};