import { ChangeEvent, useState } from 'react' import IVInputField from '~/components/IVInputField' import IVTextInput from '~/components/IVTextInput' import { isEmail } from '~/utils/validate' import { RCTResponderProps } from '~/components/RenderIOCall' import { IOComponentError } from '~/components/RenderIOCall/ComponentError' import useInput from '~/utils/useInput' export default function InputEmail(props: RCTResponderProps<'INPUT_EMAIL'>) { const [state, setState] = useState( (!(props.value instanceof IOComponentError) ? props.value : '') ?? '' ) const { errorMessage } = useInput(props) const onChange = (e: ChangeEvent) => { const v = e.target.value const isValid = (isEmail(v) && v.length > 0) || (v.length === 0 && props.isOptional) setState(v) props.onUpdatePendingReturnValue( isValid ? v : new IOComponentError('Please enter a valid email.') ) } return ( ) }