import React, { ChangeEvent, FC, useCallback, useEffect, useState } from 'react'; import classNames from 'classnames'; import styles from '~/styles/common/inputs.module.scss'; import { Icon } from '~/components/input/Icon'; import { IInputTextProps } from '~/redux/types'; import { LoaderCircle } from '~/components/input/LoaderCircle'; import { useTranslatedError } from '~/hooks/data/useTranslatedError'; const InputText: FC = ({ wrapperClassName, className = '', handler, required = false, status, title, error, value = '', onRef, is_loading, after, ...props }) => { const [focused, setFocused] = useState(false); const [inner_ref, setInnerRef] = useState(null); const onInput = useCallback( ({ target }: ChangeEvent) => { if (!handler) { return; } handler(target.value); }, [handler] ); const onFocus = useCallback(() => setFocused(true), []); const onBlur = useCallback(() => setFocused(false), []); const translatedError = useTranslatedError(error); useEffect(() => { if (onRef) onRef(inner_ref); }, [inner_ref, onRef]); return (
{title && (
{title}
)} {!!translatedError && (
{translatedError}
)} {!!after &&
{after}
}
); }; export { InputText };