import React from 'react'; import { ErrorMessage, useField } from 'formik'; import { InputFieldProps } from '../../interfaces'; import Typography from '../Typography'; import { Wrapper, InputWrapper, IconWrapper, InfoPanel, ErrorMessageWrapper, } from './styles'; import EmojiInput from '../EmojiInput'; import colors from '../../theme/colors'; import InputFieldLabel from '../InputFieldLabel'; import InputFieldErrorMessage from '../InputFieldErrorMessage'; const InputField = ({ label, dataCy, dataTestId, errorTestId, errorDataCy, variant, iconLeft, iconRight, required, placeholder, characterLimit, fullWidth, width, height, fontSize, fontWeight, withEmojis, isBottom, errorMessage, margin, firstInGroup, lastInGroup, infoTip, onChange, ...props }: InputFieldProps) => { // @TODO: remove formik dependency (component breaks outside of formik context) const [field, { error, touched }] = useField(props); const errorState = !!errorMessage || (!!error && touched); return ( {label && ( )} {withEmojis ? ( ) : variant === 'multiline' ? ( <> {characterLimit && ( characterLimit ? colors.error[700] : colors.neutral[400] } > {field.value?.length || 0}/{characterLimit} )}