TextField

import { TextField } from '@megafon/ui-core';

Поле для ввода пароля

Обязательное поле

C иконкой очистки значения и без неё

Отключено отображение плейсхолдера

При установке фокуса на поле - плейсхолдер не отображается

Поле для ввода телефона

Типы масок:

В данном случае, при вставке телефона в формате +79998887766 выведет его сразу в нужном формате, за счет совпадения начальных символов маски и вставляемого значения, в остальных кейсах нужна обработка значения внутри коллбека и его возврат оттуда

Код DemoTextFieldWithBeforeMaskChangeValue
export const DemoTextFieldWithBeforeMaskChangeValue = ({ children }) => {
const handleBeforeMaskChange = (value, newState) => {
const { value: newMaskedValue } = newState;
const isValuePasted = value && value.length > 1;
return { ...newState, value: isValuePasted ? value : newMaskedValue };
};
return <>{children({ handleBeforeMaskChange })}</>;
};

Подпись снизу

Comment

Валидация

Клик по "крестику" очищает поле по умолчанию. Если установлены кастомная иконка или onIconClick, то очищение перестает работать.

Name is required
You can write that field value is correct

Иконка с обработчиком клика

Error notice

Ограничение длины текста

Поле отключено для редактирования

Контролируемое состояние

Контролируемое состояние с вводом только цифр

В данном состоянии компонент полностью контролируется родительским, в том числе очистка поля ввода путем клика на иконку, для нее следует использовать коллбек onIconClick

Цветовые схемы

Тема для светлого фона (по умолчанию)
Светлая тема для цветного фона
Код DemoControlledTextField
export const DemoTextFieldWithControlledValue = ({ children }) => {
const [inputValue, setInputValue] = useState('');
const handleChange = ({ target: { value } }) => {
const valueDigits = value.replace(/[^0-9]/g, '');
setInputValue(valueDigits);
};
return <>{children({ value: inputValue, onChange: handleChange })}</>;
};

Textarea

Пропс textarea, выставленный в значение true, изменяет компонент в textarea.

Базовое использование

Тип flexible с возможностью растягивать поле по высоте

Поле автоматически увеличивается при вводе текста до высоты шести строк. Режим автоматического увеличения высоты отключается при ручном ресайзе поля.

Отключение возможности ручного ресайза для textarea с типом flexible

Обязательное поле

Подпись снизу

Comment

Валидация

Name is required
Field passed validation

Максимальное количество текста

Счетчик введенных символов

При превышении переданного количества поле становится невалидным.

10/10
20/10

Счетчик введенных графем

При превышении переданного количества поле становится невалидным.

2/10
9/10

Минимальная высота textarea равна одной строке

По умолчанию минимальная высота равна трем строкам

Отключение перевода строки по нажатию Enter

Остается доступен перевод строки по нажатию комбинации Shift + Enter и автоматический

Поле отключено для редактирования