UNPKG

@adaptabletools/adaptable

Version:

Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

33 lines (32 loc) 1.23 kB
import { jsx as _jsx } from "react/jsx-runtime"; import * as React from 'react'; import Input, { baseClassName } from './index'; import join from '../utils/join'; export const NumberInput = React.forwardRef((props, ref) => { const [value, setValue] = React.useState(() => { return props.value ?? ''; }); const handleChange = React.useCallback((event) => { const { value } = event.target; let newVal = Number(value); if (value === '-' || value === '') { newVal = value; setValue(value); } else if (!isNaN(newVal)) { setValue(value); props.onChange(newVal); } }, [props.onChange]); React.useEffect(() => { setValue(props.value); }, [props.value]); const handleBlur = React.useCallback((event) => { props?.onBlur?.(event); if (value !== props.value) { setValue(props.value); } }, [props.value, value]); const { noArrows, ...restOfProps } = props; return (_jsx(Input, { ...restOfProps, ref: ref, className: join(noArrows ? `${baseClassName}--no-arrows` : '', props.className), value: value, onBlur: handleBlur, onChange: handleChange })); });