From 9047c91992d5a4b1e983b93029041c054161f13c Mon Sep 17 00:00:00 2001 From: huangminjian Date: Wed, 13 Apr 2022 10:14:33 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=AF=B9=E8=B6=85=E8=BF=87=E7=95=8C?= =?UTF-8?q?=E9=99=90=E5=80=BC=E4=BB=A5=E5=8F=8A=E9=9D=9E=E6=95=B0=E5=AD=97?= =?UTF-8?q?=E5=AF=B9=E8=BE=93=E5=85=A5=E8=BF=9B=E8=A1=8C=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/index.less | 13 +++++++++++++ src/InputNumber.tsx | 14 ++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/assets/index.less b/assets/index.less index a5e1abe5..f96d57e4 100644 --- a/assets/index.less +++ b/assets/index.less @@ -16,6 +16,10 @@ border-color: #1890ff; box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); } + &-illegal-data { + border-color: rgb(255,0,0); + box-shadow: 0 0 0 2px rgba(255, 0, 0, 0.2); + } &-out-of-range { input { color: red; @@ -60,6 +64,15 @@ } } + &-illegal-data:hover { + border-color: rgb(255,0,0); + + .@{inputNumberPrefixCls}-handler-up, + .@{inputNumberPrefixCls}-handler-wrap { + border-color: rgb(255,0,0); + } + } + &-input-wrap { height: 100%; overflow: hidden; diff --git a/src/InputNumber.tsx b/src/InputNumber.tsx index 541be08f..87cdaa3e 100644 --- a/src/InputNumber.tsx +++ b/src/InputNumber.tsx @@ -139,6 +139,8 @@ const InputNumber = React.forwardRef( const [focus, setFocus] = React.useState(false); + const [illegalData, setIllegalData] = React.useState(false); + const userTypingRef = React.useRef(false); const compositionRef = React.useRef(false); @@ -401,9 +403,18 @@ const InputNumber = React.forwardRef( // >>> Input const onInternalInput: React.ChangeEventHandler = (e) => { + setIllegalData(judgeData(e.target.value)) collectInputValue(e.target.value); }; + const judgeData = (value: string) => { + if(isNaN(Number(value)) || (max && value > max) || (min && value < min)){ + return true + }else{ + return false + } + } + // ============================= Step ============================= const onInternalStep = (up: boolean) => { // Ignore step since out of range @@ -487,6 +498,8 @@ const InputNumber = React.forwardRef( // >>> Focus & Blur const onBlur = () => { flushInputValue(false); + + setIllegalData(false) setFocus(false); @@ -532,6 +545,7 @@ const InputNumber = React.forwardRef( [`${prefixCls}-readonly`]: readOnly, [`${prefixCls}-not-a-number`]: decimalValue.isNaN(), [`${prefixCls}-out-of-range`]: !decimalValue.isInvalidate() && !isInRange(decimalValue), + [`${prefixCls}-illegal-data`]: illegalData, })} style={style} onFocus={() => { From 3c99ba89eb7f41a7814979aedca32affac6ad67b Mon Sep 17 00:00:00 2001 From: huangminjian Date: Wed, 13 Apr 2022 10:16:40 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9lint=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/InputNumber.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/InputNumber.tsx b/src/InputNumber.tsx index 87cdaa3e..05cd48fa 100644 --- a/src/InputNumber.tsx +++ b/src/InputNumber.tsx @@ -401,20 +401,20 @@ const InputNumber = React.forwardRef( collectInputValue(inputRef.current.value); }; - // >>> Input - const onInternalInput: React.ChangeEventHandler = (e) => { - setIllegalData(judgeData(e.target.value)) - collectInputValue(e.target.value); - }; - - const judgeData = (value: string) => { - if(isNaN(Number(value)) || (max && value > max) || (min && value < min)){ + const judgeData = (inputNumberValue: string) => { + if(isNaN(Number(inputNumberValue)) || (max && inputNumberValue > max) || (min && inputNumberValue < min)){ return true }else{ return false } } + // >>> Input + const onInternalInput: React.ChangeEventHandler = (e) => { + setIllegalData(judgeData(e.target.value)) + collectInputValue(e.target.value); + }; + // ============================= Step ============================= const onInternalStep = (up: boolean) => { // Ignore step since out of range From 57b329bf2b01616c5d53682c7dc0a2804d54f1ab Mon Sep 17 00:00:00 2001 From: huangminjian Date: Wed, 13 Apr 2022 13:54:05 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=8E=BB=E9=99=A4=E5=8F=98=E7=BA=A2?= =?UTF-8?q?=E8=BE=B9=E6=A1=86=EF=BC=8C=E9=9D=9E=E6=B3=95=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=85=B1=E4=BA=ABout-of-range=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/index.less | 13 ------------- src/InputNumber.tsx | 3 +-- 2 files changed, 1 insertion(+), 15 deletions(-) diff --git a/assets/index.less b/assets/index.less index f96d57e4..a5e1abe5 100644 --- a/assets/index.less +++ b/assets/index.less @@ -16,10 +16,6 @@ border-color: #1890ff; box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2); } - &-illegal-data { - border-color: rgb(255,0,0); - box-shadow: 0 0 0 2px rgba(255, 0, 0, 0.2); - } &-out-of-range { input { color: red; @@ -64,15 +60,6 @@ } } - &-illegal-data:hover { - border-color: rgb(255,0,0); - - .@{inputNumberPrefixCls}-handler-up, - .@{inputNumberPrefixCls}-handler-wrap { - border-color: rgb(255,0,0); - } - } - &-input-wrap { height: 100%; overflow: hidden; diff --git a/src/InputNumber.tsx b/src/InputNumber.tsx index 05cd48fa..951060ca 100644 --- a/src/InputNumber.tsx +++ b/src/InputNumber.tsx @@ -544,8 +544,7 @@ const InputNumber = React.forwardRef( [`${prefixCls}-disabled`]: disabled, [`${prefixCls}-readonly`]: readOnly, [`${prefixCls}-not-a-number`]: decimalValue.isNaN(), - [`${prefixCls}-out-of-range`]: !decimalValue.isInvalidate() && !isInRange(decimalValue), - [`${prefixCls}-illegal-data`]: illegalData, + [`${prefixCls}-out-of-range`]: (!decimalValue.isInvalidate() && !isInRange(decimalValue)) || illegalData, })} style={style} onFocus={() => { From cca1946c20458d439223ce51bcc3d22529ab36be Mon Sep 17 00:00:00 2001 From: huangminjian Date: Thu, 21 Apr 2022 15:23:52 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E5=AF=B9=E5=AD=97=E7=AC=A6-=E8=BF=9B?= =?UTF-8?q?=E8=A1=8C=E7=89=B9=E6=AE=8A=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/InputNumber.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/InputNumber.tsx b/src/InputNumber.tsx index 951060ca..4c993028 100644 --- a/src/InputNumber.tsx +++ b/src/InputNumber.tsx @@ -402,7 +402,7 @@ const InputNumber = React.forwardRef( }; const judgeData = (inputNumberValue: string) => { - if(isNaN(Number(inputNumberValue)) || (max && inputNumberValue > max) || (min && inputNumberValue < min)){ + if((isNaN(Number(inputNumberValue)) && inputNumberValue !== '-') || (max && inputNumberValue > max) || (min && inputNumberValue < min)){ return true }else{ return false From a72c8156927ca1e1263344d7633ae5cf1f6724d3 Mon Sep 17 00:00:00 2001 From: huangminjian Date: Thu, 21 Apr 2022 15:37:12 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E7=AE=80=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/InputNumber.tsx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/InputNumber.tsx b/src/InputNumber.tsx index 4c993028..43ee2830 100644 --- a/src/InputNumber.tsx +++ b/src/InputNumber.tsx @@ -402,11 +402,7 @@ const InputNumber = React.forwardRef( }; const judgeData = (inputNumberValue: string) => { - if((isNaN(Number(inputNumberValue)) && inputNumberValue !== '-') || (max && inputNumberValue > max) || (min && inputNumberValue < min)){ - return true - }else{ - return false - } + return (isNaN(Number(inputNumberValue)) && inputNumberValue !== '-') || (max && inputNumberValue > max) || (min && inputNumberValue < min) } // >>> Input