diff --git a/example/src/App.tsx b/example/src/App.tsx
index 104eb29..b4e9483 100644
--- a/example/src/App.tsx
+++ b/example/src/App.tsx
@@ -93,7 +93,7 @@ const StatefulMultiSelect: FC<
)
diff --git a/src/use-select.ts b/src/use-select.ts
index d3bacb6..1205260 100644
--- a/src/use-select.ts
+++ b/src/use-select.ts
@@ -283,8 +283,9 @@ export interface UseMultiSelectProps {
export interface UseMultiSelectReturn {
value?: string | string[]
options: Option[]
- onChange?: SelectOnChange
+ onChange: SelectOnChange
}
+
export interface UseSelectProps extends UsePopperProps {
onChange: SelectOnChange
single?: boolean
@@ -1212,17 +1213,16 @@ export function useMultiSelect(
const onChangeRef = useRef()
onChangeRef.current = props.onChange;
- const setNextValue = useCallback((value: string|number|(string|number)[]) => {
+ const setNextValue = useCallback((value, change) => {
setValue(value as any)
- onChangeRef.current?.(value)
- console.log("setNextValue:", value)
+ onChangeRef.current?.(value, change)
}, [])
const onChange = useCallback(
(next, change) => {
switch (change?.action) {
case ChangeActions.SingleCreate:
- setNextValue(next as string)
+ setNextValue(next as string, change)
setOptions((o) => {
const opt = getOption(next as any)
return o.some((_o) => getOption(_o).value === opt.value)
@@ -1232,15 +1232,15 @@ export function useMultiSelect(
break
case ChangeActions.SingleClear:
case ChangeActions.SingleRemove:
- setNextValue(next as string)
+ setNextValue(next as string, change)
break
case ChangeActions.SingleSelect:
- setNextValue(next as string)
+ setNextValue(next as string, change)
break
case ChangeActions.MultiCreate:
const nextValue = next as string[]
const created = next[nextValue.length - 1]
- setNextValue(nextValue)
+ setNextValue(nextValue, change)
setOptions((o) => {
const opt = getOption(created as any)
return o.some((_o) => getOption(_o).value === opt.value)
@@ -1250,11 +1250,11 @@ export function useMultiSelect(
break
case ChangeActions.MultiClear:
case ChangeActions.MultiRemove:
- setNextValue(next as string[])
+ setNextValue(next as string[], change)
break
case ChangeActions.MultiSelect:
default:
- setNextValue(next as string[])
+ setNextValue(next as string[], change)
}
},
[setValue, setOptions, getOption]