/// import InputNumber, { type InputNumberProps } from 'antd/lib/input-number'; import React, { Ref } from 'react'; import { FieldProps, connectField, filterDOMProps } from 'uniforms'; import wrapField from './wrapField'; export type NumFieldProps = FieldProps< number, // FIXME: Why `onReset` fails with `wrapField`? Omit, { decimal?: boolean; inputRef?: Ref } >; function Num(props: NumFieldProps) { return wrapField( props, { const parse = props.decimal ? parseFloat : parseInt; const value = parse('' + event); props.onChange(isNaN(value) ? undefined : value); }} placeholder={props.placeholder} readOnly={props.readOnly} ref={props.inputRef} step={props.step || (props.decimal ? 0.01 : 1)} style={{ width: '100%' }} type="number" value={props.value} {...filterDOMProps(props)} />, ); } export default connectField(Num, { kind: 'leaf' });