@@ -35,7 +35,6 @@ interface INumberInputField extends Omit<React.ComponentProps<typeof Field>, "on
3535 onChange ?: ( value : string ) => void ;
3636 formatter ?: ( value : string ) => string ;
3737 className ?: string ;
38- min ?: number ;
3938}
4039
4140export const NumberInputField : React . FC < INumberInputField > = ( {
@@ -46,7 +45,6 @@ export const NumberInputField: React.FC<INumberInputField> = ({
4645 formatter,
4746 className,
4847 variant = "info" ,
49- min,
5048} ) => {
5149 const [ isEditing , setIsEditing ] = useState ( false ) ;
5250
@@ -58,19 +56,26 @@ export const NumberInputField: React.FC<INumberInputField> = ({
5856 < Container { ...{ className } } >
5957 { isEditing ? (
6058 < StyledField
61- type = "number"
59+ type = "text"
60+ onInput = { ( e ) => {
61+ const value = e . currentTarget . value . replace ( / [ ^ 0 - 9 . ] / g, "" ) ;
62+
63+ e . currentTarget . value = formatter ? formatter ( value ) : value ;
64+ return e ;
65+ } }
6266 onChange = { ( event : React . ChangeEvent < HTMLInputElement > ) => {
6367 onChange ?.( event . target . value ) ;
6468 } }
6569 onBlur = { toggleEditing }
66- { ...{ value, placeholder, message, variant, min } }
70+ value = { formatter ? formatter ( value ?? "0" ) : value }
71+ { ...{ placeholder, message, variant } }
6772 />
6873 ) : (
6974 < StyledField
7075 type = "text"
7176 value = { formatter ? formatter ( value ?? "0" ) : value }
7277 onFocus = { toggleEditing }
73- { ...{ placeholder, message, variant, min } }
78+ { ...{ placeholder, message, variant } }
7479 readOnly
7580 />
7681 ) }
0 commit comments