@@ -8,6 +8,16 @@ import { Props } from './types'
88
99import './TextField.css'
1010
11+ function buildBlurEvent ( event : React . MouseEvent < HTMLInputElement > ) {
12+ return {
13+ ...event ,
14+ type : 'blur' ,
15+ target : event . target ,
16+ currentTarget : event . currentTarget ,
17+ relatedTarget : null
18+ } as unknown as React . FocusEvent < HTMLInputElement >
19+ }
20+
1121const TextField = React . forwardRef < HTMLInputElement , Props > ( ( props , ref ) => {
1222 const {
1323 drop,
@@ -43,6 +53,7 @@ const TextField = React.forwardRef<HTMLInputElement, Props>((props, ref) => {
4353
4454 const handleInputChange : React . ChangeEventHandler < HTMLInputElement > = useCallback (
4555 ( event ) => {
56+ console . log ( 'asd 1' , event )
4657 setInputValue ( event . target . value )
4758 debounceChange ( event )
4859 } ,
@@ -74,6 +85,20 @@ const TextField = React.forwardRef<HTMLInputElement, Props>((props, ref) => {
7485 setHovered ( false )
7586 } , [ setHovered ] )
7687
88+ const handleWheel : React . WheelEventHandler < HTMLInputElement > = useCallback (
89+ ( event ) => {
90+ if ( type === 'number' ) {
91+ event . preventDefault ( )
92+ event . stopPropagation ( )
93+ const input = event . currentTarget
94+ input . blur ( )
95+ onBlur ?.( buildBlurEvent ( event ) )
96+ return false
97+ }
98+ } ,
99+ [ type , onBlur ]
100+ )
101+
77102 const renderLeftContent = useCallback ( ( ) => {
78103 if ( leftLabel ) {
79104 return (
@@ -130,6 +155,7 @@ const TextField = React.forwardRef<HTMLInputElement, Props>((props, ref) => {
130155 onBlur = { handleInputBlur }
131156 onMouseEnter = { handleMouseEnter }
132157 onMouseLeave = { handleMouseLeave }
158+ onWheel = { handleWheel }
133159 disabled = { disabled }
134160 { ...rest }
135161 />
0 commit comments