import { ChangeEvent, FormEvent, RefObject } from 'react'; import React, { FC, memo } from '../../lib/teact/teact'; import buildClassName from '../../util/buildClassName'; type OwnProps = { ref?: RefObject; id?: string; className?: string; value?: string; label?: string; error?: string; success?: string; disabled?: boolean; readOnly?: boolean; placeholder?: string; autoComplete?: string; maxLength?: number; inputMode?: 'text' | 'none' | 'tel' | 'url' | 'email' | 'numeric' | 'decimal' | 'search'; onChange?: (e: ChangeEvent) => void; onInput?: (e: FormEvent) => void; onKeyPress?: (e: React.KeyboardEvent) => void; onKeyDown?: (e: React.KeyboardEvent) => void; onBlur?: (e: React.FocusEvent) => void; }; const InputText: FC = ({ ref, id, className, value, label, error, success, disabled, readOnly, placeholder, autoComplete, inputMode, maxLength, onChange, onInput, onKeyPress, onKeyDown, onBlur, }) => { const labelText = error || success || label; const fullClassName = buildClassName( 'input-group', value && 'touched', error ? 'error' : success && 'success', disabled && 'disabled', readOnly && 'disabled', labelText && 'with-label', className, ); return (
{labelText && ( )}
); }; export default memo(InputText);