@@ -3,6 +3,9 @@ import { useFormContext } from 'react-hook-form';
33import { Props , EventFunction } from './types' ;
44
55function getValue ( target : any , { isCheckbox } : { isCheckbox : boolean } ) {
6+ if ( Array . isArray ( target ) ) {
7+ return target ;
8+ }
69 return target ? ( isCheckbox ? target . checked : target . value ) : target ;
710}
811
@@ -39,31 +42,10 @@ const RHFInput = React.memo(
3942 : defaultValue ;
4043 const [ inputValue , setInputValue ] = React . useState ( defaultData ) ;
4144 const valueRef = React . useRef ( defaultData ) ;
42- const methods = useFormContext ( ) ;
43- const setValue =
44- setValueFromProp !== undefined
45- ? setValueFromProp
46- : methods
47- ? methods . setValue
48- : ( ) => {
49- throw Error ( 'Must provide setValue prop or formContext' ) ;
50- } ;
51- const register =
52- registerFromProp !== undefined
53- ? registerFromProp
54- : methods
55- ? methods . register
56- : ( ) => {
57- throw Error ( 'Must provide register prop or formContext' ) ;
58- } ;
59- const unregister =
60- unregisterFromProp !== undefined
61- ? unregisterFromProp
62- : methods
63- ? methods . unregister
64- : ( ) => {
65- throw Error ( 'Must provide unregister prop or formContext' ) ;
66- } ;
45+ const methods = useFormContext ( ) || { } ;
46+ const setValue = setValueFromProp || methods . setValue ;
47+ const register = registerFromProp || methods . register ;
48+ const unregister = unregisterFromProp || methods . unregister ;
6749
6850 const commonTask = ( target : any ) => {
6951 const data = getValue ( target , { isCheckbox } ) ;
@@ -85,15 +67,15 @@ const RHFInput = React.memo(
8567 } ;
8668
8769 const handleChange = ( e : any ) => {
88- const data = commonTask ( e ? e . target : e ) ;
70+ const data = commonTask ( e && e . target ? e . target : e ) ;
8971 setValue ( name , data , isOnChange ) ;
9072 if ( onChange ) {
9173 onChange ( e ) ;
9274 }
9375 } ;
9476
9577 const handleBlur = ( e : any ) => {
96- const data = commonTask ( e ? e . target : e ) ;
78+ const data = commonTask ( e && e . target ? e . target : e ) ;
9779 setValue ( name , data , isOnBlur ) ;
9880 if ( onBlur ) {
9981 onBlur ( e ) ;
0 commit comments