@@ -28,44 +28,53 @@ type FormFieldSize = 'sm' | 'default' | 'lg';
2828type FieldCustomProps <
2929 TFieldValues extends FieldValues = FieldValues ,
3030 TName extends FieldPath < TFieldValues > = FieldPath < TFieldValues > ,
31+ TTransformedValues = TFieldValues ,
3132> = {
3233 type : 'custom' ;
3334} & Pick <
34- ControllerProps < TFieldValues , TName > ,
35+ ControllerProps < TFieldValues , TName , TTransformedValues > ,
3536 'defaultValue' | 'name' | 'shouldUnregister' | 'disabled' | 'render'
3637> &
37- Required < Pick < ControllerProps < TFieldValues , TName > , 'control' > > ;
38+ Required <
39+ Pick < ControllerProps < TFieldValues , TName , TTransformedValues > , 'control' >
40+ > ;
3841
3942type CustomProps = object ;
4043export type FieldProps <
4144 TFieldValues extends FieldValues = FieldValues ,
4245 TName extends FieldPath < TFieldValues > = FieldPath < TFieldValues > ,
46+ TTransformedValues = TFieldValues ,
4347 TProps extends CustomProps = CustomProps ,
44- > = Omit < FieldCustomProps < TFieldValues , TName > , 'render' | 'type' > & {
48+ > = Omit <
49+ FieldCustomProps < TFieldValues , TName , TTransformedValues > ,
50+ 'render' | 'type'
51+ > & {
4552 size ?: FormFieldSize ;
4653 displayError ?: boolean ;
4754} & Omit < TProps , 'value' | 'ref' | 'id' | 'aria-invalid' | 'aria-describedby' > ;
4855
4956export type FormFieldControllerProps <
5057 TFieldValues extends FieldValues = FieldValues ,
5158 TName extends FieldPath < TFieldValues > = FieldPath < TFieldValues > ,
59+ TTransformedValues = TFieldValues ,
5260> =
53- | FieldCustomProps < TFieldValues , TName >
61+ | FieldCustomProps < TFieldValues , TName , TTransformedValues >
5462 // -- ADD NEW FIELD PROPS TYPE HERE --
55- | FieldNumberProps < TFieldValues , TName >
56- | FieldSelectProps < TFieldValues , TName >
57- | FieldDateProps < TFieldValues , TName >
58- | FieldTextProps < TFieldValues , TName >
59- | FieldOtpProps < TFieldValues , TName >
60- | FieldRadioGroupProps < TFieldValues , TName >
61- | FieldCheckboxProps < TFieldValues , TName >
62- | FieldCheckboxGroupProps < TFieldValues , TName > ;
63+ | FieldNumberProps < TFieldValues , TName , TTransformedValues >
64+ | FieldSelectProps < TFieldValues , TName , TTransformedValues >
65+ | FieldDateProps < TFieldValues , TName , TTransformedValues >
66+ | FieldTextProps < TFieldValues , TName , TTransformedValues >
67+ | FieldOtpProps < TFieldValues , TName , TTransformedValues >
68+ | FieldRadioGroupProps < TFieldValues , TName , TTransformedValues >
69+ | FieldCheckboxProps < TFieldValues , TName , TTransformedValues >
70+ | FieldCheckboxGroupProps < TFieldValues , TName , TTransformedValues > ;
6371
6472export const FormFieldController = <
6573 TFieldValues extends FieldValues = FieldValues ,
6674 TName extends FieldPath < TFieldValues > = FieldPath < TFieldValues > ,
75+ TTransformedValues = TFieldValues ,
6776> (
68- _props : FormFieldControllerProps < TFieldValues , TName >
77+ _props : FormFieldControllerProps < TFieldValues , TName , TTransformedValues >
6978) => {
7079 const { size } = useFormField ( ) ;
7180
@@ -110,15 +119,18 @@ export const FormFieldController = <
110119
111120 const displayError = 'displayError' in props ? props . displayError : undefined ;
112121
113- const contextValue : FormFieldControllerContextValue < TFieldValues , TName > =
114- useMemo (
115- ( ) => ( {
116- name : props . name ,
117- control : props . control ,
118- displayError : displayError ,
119- } ) ,
120- [ props . name , props . control , displayError ]
121- ) ;
122+ const contextValue : FormFieldControllerContextValue <
123+ TFieldValues ,
124+ TName ,
125+ TTransformedValues
126+ > = useMemo (
127+ ( ) => ( {
128+ name : props . name ,
129+ control : props . control ,
130+ displayError : displayError ,
131+ } ) ,
132+ [ props . name , props . control , displayError ]
133+ ) ;
122134
123135 return (
124136 < FormFieldControllerContext value = { contextValue as ExplicitAny } >
@@ -130,7 +142,13 @@ export const FormFieldController = <
130142export type FormFieldControllerContextValue <
131143 TFieldValues extends FieldValues = FieldValues ,
132144 TName extends FieldPath < TFieldValues > = FieldPath < TFieldValues > ,
133- > = Required < Pick < ControllerProps < TFieldValues , TName > , 'control' | 'name' > > & {
145+ TTransformedValues = TFieldValues ,
146+ > = Required <
147+ Pick <
148+ ControllerProps < TFieldValues , TName , TTransformedValues > ,
149+ 'control' | 'name'
150+ >
151+ > & {
134152 displayError ?: boolean ;
135153} ;
136154
0 commit comments