Skip to content
This repository was archived by the owner on Jan 14, 2021. It is now read-only.

Commit 46e2761

Browse files
committed
close #18 with react-select array data
1 parent eabe7a8 commit 46e2761

File tree

1 file changed

+9
-27
lines changed

1 file changed

+9
-27
lines changed

src/index.tsx

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@ import { useFormContext } from 'react-hook-form';
33
import { Props, EventFunction } from './types';
44

55
function 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

Comments
 (0)