ChipsInput

Компонент для ввода и отображения множества значений. Позволяет пользователю добавлять, удалять и редактировать элементы списка. Каждый элемент представлен в виде отдельного компонента Chip.

Связанные компоненты:

Загружается...

Компонент поддерживает работу как в неконтролируемом режиме, так и контролируемом. Это стандартное поведение React-компонентов, прочитать про это можно в документации React ↗.

Для использования неконтролируемого режима достаточно просто не передавать value или передавать defaultValue, если требуется задать значение по умолчанию. Для контролируемого режима используйте связку свойств value/onChange для задания значения и его изменения.

// Неконтролируемое состояние
<ChipsInput
  defaultValue={[
    {
      value: 'red',
      label: 'Красный',
    },
  ]}
/>;
 
// Контролируемое состояние
const [colors, setColors] = React.useState([]);
 
<ChipsInput value={colors} onChange={setColors} />;

Задаётся свойством delimiter. Позволяет добавлять несколько элементов за раз, разделяя их указанным символом.

Представляет собой символ, который будет использоваться как разделитель для автоматического создания опций из текста, введенного или вставленного в поле ввода. Например, при delimiter="," вставка текста “Красный,Синий” в поле ввода создаст два элемента - “Красный” и “Синий”.

Пока поддерживаются только строковые символы.

Загружается...

По умолчанию при потере полем фокуса добавления в список опций не происходит. С помощью свойства addOnBlur можно включить поведение, при котором потеря фокуса будет приводить к добавлению нового элемента.

Загружается...

Свойство disabled блокирует взаимодействие с компонентом и добавляет визуальную индикацию недоступности.

Загружается...

Свойство status используется для визуализации валидации компонента - некорректности заполненного поля (значение "error") или успешной валидации (значение "valid").

Загружается...

С помощью свойства renderChip можно влиять на отображение конкретного значения. Вы можете изменить стандартный компонент Chip или использовать свой компонент:

Загружается...

Важно отметить, что первым параметром в обработчике renderChip идёт объект со свойствами, необходимыми для корректной работы a11y. Если для отображения опции вы используете свой компонент, убедитесь, что все эти свойства компонент получает и корректно обрабатывает. Вторым параметром идёт объект со значением конкретной опции (значение, переданное в value/defaultValue).

Компонент обеспечивает базовую доступность через стандартные HTML-атрибуты и ARIA-роли.

Для улучшения доступности рекомендуется связывать компонент с текстовым описанием одним из следующих способов:

  • обернуть в <label>;

    <label>
      Список исполнителей
      <ChipsInput placeholder="Введите название" />
    </label>
  • указать id или aria-describedby и передать в <label> или FormItem через htmlFor;

    <label htmlFor="chips">Список исполнителей</label>
    <ChipsInput placeholder="Введите название" id="chips"/>
    <FormItem top="Список исполнителей" htmlFor="chips">
      <ChipsInput placeholder="Введите название" id="chips" />
    </FormItem>
  • указать aria-label;

    <ChipsInput placeholder="Введите название" aria-label="Список исполнителей" />

При необходимости, через свойство chipsListLabel можете указать описания списка выбранных опций.

СвойствоОписание
addOnBlurboolean

Добавляет значение в список на событие onBlur.

По умолчанию: -
afterReactNode

Добавляет иконку справа.

Рекомендации:

  • Используйте следующие размеры иконок 12 | 16 | 20 | 24 | 28.
  • Используйте IconButton ↗, если вам нужна иконка, реагируюущая на нажатие.
По умолчанию: -
alignAlignType
По умолчанию: -
allowClearButtonboolean

Если true, то справа будет отображаться кнопка для очистки значения.

По умолчанию: -
beforeReactNode

Добавляет иконку слева.

Рекомендации:

  • Используйте следующие размеры иконок 12 | 16 | 20 | 24 | 28.
  • Используйте IconButton ↗, если вам нужна иконка, реагирующая на нажатие.
По умолчанию: -
chipsListLabelstring

aria-label для списка выбранных опций.

По умолчанию: -
ClearButtonComponentType<FormFieldClearButtonProps>

Кастомная кнопка для очистки значения. Должна принимать обязательное свойство onClick.

По умолчанию: -
clearButtonShownboolean

Показывать ли кнопку для очистки значения.

По умолчанию: -
clearButtonTestIdstring

(e2e) testId кнопки очистки.

По умолчанию: -
defaultInputValuestring

Значение поля ввода по умолчанию.

По умолчанию: -
defaultValueOption[]

Выбранные опции по умолчанию.

По умолчанию: -
delimiterstring | RegExp | string[]

Символ или строка, которая будет использоваться как разделитель для автоматического создания опций из текста, введенного в поле ввода. Принимает:

  • string - простая строка
  • RegExp - регулярное выражение
  • string[] - массив строк, по которым нужно разелять ввод.

Работает в двух сценариях:

  1. При вводе разделителя - текст до разделителя автоматически преобразуется в новую опцию. Например, при delimiter="," ввод “опция1,” создаст опцию “опция1”.

  2. При вставке из буфера обмена - если вставляемый текст содержит разделители, он будет автоматически разбит на несколько опций. Например, при delimiter="," вставка “опция1,опция2,опция3” создаст три отдельные опции: “опция1”, “опция2” и “опция3”.

По умолчанию: -
disabledboolean

Блокировка взаимодействия с компонентом.

По умолчанию: -
getNewOptionDataGetNewOptionData<Option>

Функция для создания новой опции.

По умолчанию: -
getOptionLabelGetOptionLabel<Option>

Селектор пользовательского представления.

По умолчанию: -
getOptionValueGetOptionValue<Option>

Селектор значения.

По умолчанию: -
getRefRef<HTMLInputElement>
По умолчанию: -
getRootRefRef<HTMLDivElement>

Ссылка на корневой элемент.

По умолчанию: -
inputValuestring

Значение поля ввода.

По умолчанию: -
maxHeightnumber

Максимальная высота поля.

По умолчанию: -
mode"default" | "plain"

Режим отображения.

  • default — показывает фон, обводку и, при наличии, текст-подсказку.
  • plain — показывает только текст-подсказку.
По умолчанию: -
onChangeOnChange<Option>

Обработчик изменения выбранных опций.

По умолчанию: -
onInputChangeOnInputChange

Обработчик изменения значения в поле ввода.

По умолчанию: -
renderChipRenderChip<Option>

Render prop функция для возврата своего компонента.

По умолчанию: Используется [Chip](#/Chip)
status"default" | "error" | "valid"

Статус отображения поля в форме.

По умолчанию: -
valueOption[]

Выбранные опции.

По умолчанию: -