1 | import React from 'react';
|
2 | import { RegisterOptions } from './validator';
|
3 | import { Control, FieldError, FieldPath, FieldPathValue, FieldValues, Noop, RefCallBack, UseFormStateReturn } from './';
|
4 | export type ControllerFieldState = {
|
5 | invalid: boolean;
|
6 | isTouched: boolean;
|
7 | isDirty: boolean;
|
8 | isValidating: boolean;
|
9 | error?: FieldError;
|
10 | };
|
11 | export type ControllerRenderProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {
|
12 | onChange: (...event: any[]) => void;
|
13 | onBlur: Noop;
|
14 | value: FieldPathValue<TFieldValues, TName>;
|
15 | disabled?: boolean;
|
16 | name: TName;
|
17 | ref: RefCallBack;
|
18 | };
|
19 | export type UseControllerProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {
|
20 | name: TName;
|
21 | rules?: Omit<RegisterOptions<TFieldValues, TName>, 'valueAsNumber' | 'valueAsDate' | 'setValueAs' | 'disabled'>;
|
22 | shouldUnregister?: boolean;
|
23 | defaultValue?: FieldPathValue<TFieldValues, TName>;
|
24 | control?: Control<TFieldValues>;
|
25 | disabled?: boolean;
|
26 | };
|
27 | export type UseControllerReturn<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {
|
28 | field: ControllerRenderProps<TFieldValues, TName>;
|
29 | formState: UseFormStateReturn<TFieldValues>;
|
30 | fieldState: ControllerFieldState;
|
31 | };
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 |
|
50 |
|
51 |
|
52 |
|
53 | export type ControllerProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = {
|
54 | render: ({ field, fieldState, formState, }: {
|
55 | field: ControllerRenderProps<TFieldValues, TName>;
|
56 | fieldState: ControllerFieldState;
|
57 | formState: UseFormStateReturn<TFieldValues>;
|
58 | }) => React.ReactElement;
|
59 | } & UseControllerProps<TFieldValues, TName>;
|
60 |
|
\ | No newline at end of file |