import React, { ComponentProps, forwardRef, ReactNode } from 'react'; import clsx from 'clsx'; type Props = ComponentProps<'input'> & { label?: string; desc?: string; leftAddon?: ReactNode; rightAddon?: ReactNode; error?: string; trimOnBlur?: boolean; }; export const Input = forwardRef( ({ name, label, desc, className, leftAddon, rightAddon, error, trimOnBlur, onBlur, ...rest }, ref) => (
{label && ( )} {desc &&
{desc}
}
{leftAddon &&
{leftAddon}
} { if (trimOnBlur) { e.target.value = e.target.value.trim(); rest.onChange(e); } if (onBlur) { onBlur(e); } }} {...rest} /> {rightAddon &&
{rightAddon}
}
{error &&
{error}
}
), ); Input.displayName = 'Input';