Cell
Расширенная версия SimpleCell с поддержкой удаления, перетаскивания и выбора элементов.
Используется для создания интерактивных списков с расширенной функциональностью.
Основные режимы
mode="removable"
Добавляет кнопку удаления:
mode="selectable"
Добавляет чекбокс выбора:
draggable
Включает возможность перетаскивания. При использовании данного режима обязательно
оборачивайте Cell в компонент List.
Пример можно увидеть в документации компонента List.
Ограничения
- Перетаскивание работает только внутри
List. - Не меняет порядок
DOM-элементов автоматически.
Комбинирование режимов
Одноврменно вы можете использовать перетаскиваемые ячейки либо с mode="removable", либо с mode="selectable".
Одновременно удалять, перетаскивать и выбирать ячейки нельзя.
Cell.Checkbox
Используйте подкомпонент Cell.Checkbox для возможности размещать чекбокс по бокам
(передавайте его в свойства before или after). С помощью данного подкомпонента также можно изменить
внешний вид чекбоксов.
Доступность (a11y)
- При использовании
mode="selectable"автоматически использует в качествеComponentтегlabelдля корректного связывания с чекбоксом. - У кнопки для перетаскивания есть текст для скринридера, его можно переопределить с помощью свойства
draggerLabel. - Также стоит ознакомиться с [рекомендациями по доступности компонента
SimpleCell.
List
Специализированный контейнер для работы с компонентами <Cell draggable />.
Обеспечивает правильное отображение и взаимодействие элементов.
Также можно использовать как семантический контейнер для обычных Cell.
Отступы между элементами
Контролируется свойством gap:
<List gap={16}>
<Cell before={<Icon28User />}>Профиль</Cell>
<Cell before={<Icon28Settings />}>Настройки</Cell>
</List>Доступность (a11y)
- Автоматически добавляет
role="list".
Свойства и методы
Cell
| Свойство | Описание |
|---|---|
activated | booleanПозволяет управлять По умолчанию: - |
activeClassName | stringDeprecated: Since 7.3.0. Свойство устарело и будет удалено в По умолчанию: - |
activeEffectDelay | numberДлительность показа По умолчанию: - |
activeMode | StateModeLiteralСтиль подсветки active-состояния. Если передать произвольную строку, она добавится как css-класс во время active. По умолчанию: - |
after | ReactNodeИконка 24|28 или По умолчанию: - |
badgeAfterSubtitle | ReactNodeИконка 12. Добавится справа от текста По умолчанию: - |
badgeAfterTitle | ReactNodeИконка 12 или По умолчанию: - |
badgeBeforeSubtitle | ReactNodeИконка 12. Добавится слева от текста По умолчанию: - |
badgeBeforeTitle | ReactNodeИконка 12 или По умолчанию: - |
baseClassName | string | falseDeprecated: Since 7.3.0. Свойство устарело и будет удалено в По умолчанию: - |
baseStyle | CSSPropertiesDeprecated: Since 7.3.0. Свойство устарело и будет удалено в По умолчанию: - |
before | ReactNodeИконка 28 или По умолчанию: - |
borderRadiusMode | "auto" | "inherit"Задает border-radius элементу
В режиме По умолчанию: - |
checked | booleanВ режиме По умолчанию: - |
chevron | "auto" | "always"Управляет видимостью иконки шеврона
По умолчанию: - |
chevronSize | "s" | "m"Размер chevron. По умолчанию: - |
Component | ElementType<any, keyof IntrinsicElements>По умолчанию: - |
defaultChecked | booleanВ режиме По умолчанию: - |
disabled | booleanБлокировка взаимодействия с компонентом. По умолчанию: - |
draggable | booleanВ режиме перетаскивания ячейка перестает реагировать на нажатие, то есть при нажатии переданный По умолчанию: - |
draggerLabel | stringТекст для кнопки перетаскивания ячейки. По умолчанию: Перенести ячейку |
draggerTestId | stringПередает атрибут По умолчанию: - |
extraSubtitle | ReactNodeДополнительная строка текста под По умолчанию: - |
focusVisibleMode | FocusVisibleModeСтиль аутлайна focus visible. Если передать произвольную строку, она добавится как css-класс при :focus-visible По умолчанию: - |
getRootRef | Ref<HTMLDivElement>По умолчанию: - |
hasActive | booleanУказывает, должен ли компонент реагировать на По умолчанию: - |
hasHover | booleanУказывает, должен ли компонент реагировать на По умолчанию: - |
hasHoverWithChildren | booleanПозволяет родительскому компоненту
иметь Присваивается родителькому компоненту. По умолчанию: - |
hoverClassName | stringDeprecated: Since 7.3.0. Свойство устарело и будет удалено в По умолчанию: - |
hovered | booleanПозволяет управлять По умолчанию: - |
hoverMode | StateModeLiteralСтиль подсветки hover-состояния. Если передать произвольную строку, она добавится как css-класс во время hover. По умолчанию: - |
indicator | ReactNodeКонтейнер для текста справа от По умолчанию: - |
mode | "selectable" | "removable"Режим отображения ячейки:
По умолчанию: - |
multiline | booleanВключает многострочный режим для отображения текста. По умолчанию: - |
name | stringИмя для По умолчанию: - |
onDragFinish | ((swappedItemRange: SwappedItemRange) => void)Обработчик, срабатывающий при завершении перетаскивания.
Важно: режим перетаскивания не меняет порядок ячеек в DOM. В обработчике есть объект с полями По умолчанию: - |
onRemove | ((e: MouseEvent<Element, MouseEvent>, rootEl?: HTMLElement | null) => void) | undefinedОбработчик, срабатывающий при нажатии на контрол удаления. По умолчанию: - |
overTitle | ReactNodeДополнительная строка текста над По умолчанию: - |
removeButtonTestId | stringПередает атрибут По умолчанию: - |
removePlaceholder | ReactNodeТекст кнопки удаления ячейки. Визуально скрыт везде, кроме iOS. На iOS появляется в выезжающей кнопке для удаления ячейки. По умолчанию: Удалить |
subtitle | ReactNodeДополнительная строка текста под По умолчанию: - |
toggleButtonTestId | stringПередает атрибут По умолчанию: - |
unlockParentHover | booleanПозволяет родительскому компоненту показывать hovered-состояние при наведении на текущий дочерний компонент. Присваивается дочернему компоненту. По умолчанию: - |
List
| Свойство | Описание |
|---|---|
gap | numberЗадает отступ между элементами. По умолчанию: 0 |
getRootRef | Ref<HTMLDivElement>По умолчанию: - |