diff --git a/packages/lsd-react/src/components/NumberInput/NumberInput.tsx b/packages/lsd-react/src/components/NumberInput/NumberInput.tsx index 86d42fc..19da8e9 100644 --- a/packages/lsd-react/src/components/NumberInput/NumberInput.tsx +++ b/packages/lsd-react/src/components/NumberInput/NumberInput.tsx @@ -59,28 +59,12 @@ export const NumberInput: React.FC & { if (disabled) return const newValue = Math.min(max, Number(input.value || '0') + step) input.setValue(newValue.toString()) - - const fakeEvent = { - target: { value: newValue.toString() }, - } - - if (onChange) { - input.onChange(fakeEvent as any) - } } const handleDecrement = () => { if (disabled) return const newValue = Math.max(min, Number(input.value || '0') - step) input.setValue(newValue.toString()) - - const fakeEvent = { - target: { value: newValue.toString() }, - } - - if (onChange) { - input.onChange(fakeEvent as any) - } } return ( diff --git a/packages/lsd-react/src/utils/useInput.ts b/packages/lsd-react/src/utils/useInput.ts index 0e8f1d0..fa60220 100644 --- a/packages/lsd-react/src/utils/useInput.ts +++ b/packages/lsd-react/src/utils/useInput.ts @@ -28,12 +28,16 @@ export const useInput = ( : value.toString().length > 0 const onChange: InputOnChangeType = (event) => { - const type = event.target.type - const value = - event.target[ - type === 'checkbox' || type === 'radio' ? 'checked' : 'value' - ] - if (uncontrolled) return setValue(value as T) + if (uncontrolled) { + const type = event.target.type + const value = + event.target[ + type === 'checkbox' || type === 'radio' ? 'checked' : 'value' + ] + + setValue(value as T) + } + props.onChange && props.onChange(event) }