import React, { LegacyRef } from 'react'; import classNames from 'classnames'; import InputGroup, { InputGroupProps } from './InputGroup'; import { FormDefaults } from '../FormDefaults'; export interface MoneyInputGroupProps extends Omit< InputGroupProps, 'onChange' | 'type' | 'value' > { /** Custom parsing function when the value changes. */ parseFunc?: typeof parseInt | typeof parseFloat; } function MoneyInputGroup( { parseFunc, className, ...rest }: MoneyInputGroupProps, ref: LegacyRef ) { const effectiveParse = parseFunc ?? parseFloat; const { input } = rest; return ( { if (!e.target.value) { input.onChange(undefined); } else { input.onChange(effectiveParse(e.target.value)); } }} /> ); } /** Input group for inputting money. */ const MoneyInputGroupWithRef = React.forwardRef( MoneyInputGroup ) as React.FunctionComponent; export default MoneyInputGroupWithRef;