import { NumberInput, NumberInputProps } from "@mantine/core" import React, { useState } from "react" interface PortInputProps extends NumberInputProps { fullWidth?: boolean } const PortInput = React.forwardRef( (props, ref) => { const [oldValue, setOldValue] = useState(props.defaultValue?props.defaultValue.toString():"") const {fullWidth, ...propeties} = props return { const value = parseInt((e.target as HTMLInputElement).value) if (value > 65535) { (e.target as HTMLInputElement).value = oldValue } else if (value < 1) { (e.target as HTMLInputElement).value = oldValue }else{ (e.target as HTMLInputElement).value = value.toString() } setOldValue((e.target as HTMLInputElement).value) props.onInput?.(e) }} ref={ref} {...propeties} /> }) export default PortInput