import React, { FC, useState } from 'react'; import CurrencyInput from '../components/CurrencyInput'; import { CurrencyInputProps, CurrencyInputOnChangeValues } from '../components/CurrencyInputProps'; export const Example1: FC = () => { const limit = 1000; const prefix = '£'; const [errorMessage, setErrorMessage] = useState(''); const [className, setClassName] = useState(''); const [value, setValue] = useState(123.45); const [values, setValues] = useState(); const [rawValue, setRawValue] = useState(' '); /** * Handle validation */ const handleOnValueChange: CurrencyInputProps['onValueChange'] = (value, _, values): void => { setValues(values); setRawValue(value === undefined ? 'undefined' : value || ' '); if (!value) { setClassName(''); setValue(''); return; } if (Number.isNaN(Number(value))) { setErrorMessage('Please enter a valid number'); setClassName('is-invalid'); return; } if (Number(value) > limit) { setErrorMessage(`Max: ${prefix}${limit}`); setClassName('is-invalid'); setValue(value); return; } setClassName('is-valid'); setValue(value); }; return (

Example 1

  • {`'£'`} prefix
  • Allows decimals (up to 2 decimal places)
  • Value is set programmatically (passed in via props)
{errorMessage}
                
onValueChange:
{rawValue}
Values:
{JSON.stringify(values, undefined, ' ')}
); }; export default Example1;