From d407e6c7b7ae8bfb9f3f6fc54324f4af3f706c25 Mon Sep 17 00:00:00 2001 From: Botzy Date: Mon, 10 Feb 2025 15:12:43 +0200 Subject: [PATCH] fix(NumberInput): min & max validation when entering value from keyboard --- src/components/NumberInput/NumberInput.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/NumberInput/NumberInput.tsx b/src/components/NumberInput/NumberInput.tsx index 37daf6401..303e04cbf 100644 --- a/src/components/NumberInput/NumberInput.tsx +++ b/src/components/NumberInput/NumberInput.tsx @@ -67,7 +67,12 @@ const NumberInput = forwardRef(({ defaultValue, ...prop value={value} {...props} className={classnames(props.className, styles['value'], { 'disabled': props.disabled })} - onChange={(event: ChangeEvent) => setValue(parseInt(event.target.value))} + onChange={(event: ChangeEvent) => { + const newValue = parseInt(event.target.value); + if (props.min !== undefined && newValue < props.min) return props.min; + if (props.max !== undefined && newValue > props.max) return props.max; + setValue(newValue); + }} onKeyDown={onKeyDown} />