Skip to content

CdsStages

Deprecated

Шкала этапов показывает ход бизнес-процесса: какие этапы позади, какой идёт сейчас и где процесс остановился из-за ошибки. Компонент только отображает статус — по этапам нельзя кликать, поэтому шкала уместна в карточках, шапках и списках, где состояние процесса нужно считать с одного взгляда.

Storybook GitLab Figma
Покрытие тестами: 100% — хорошее покрытие
API в спеках
13 / 13 пропсы, события, слоты и exposed, у которых есть тест
Тест-кейсы
17 юнит · 0 браузерных · 4 в планах
Известные баги
1 зафиксированы тестом it.fails
Покрытие кода
100% строк · 100% ветвей замер v4.0.0-alpha.13
A11y (axe)
9 рекомендаций в 9 историях замер v4.0.0-alpha.11

Компонент устарел: новый код на нём писать не нужно. Он продолжает работать во всей ветке 4.x и в dev-консоли выводит [CDS UPGRADE], а удалим его в 5.0. Ход процесса без навигации по шагам показывает CdsSteps — без пропа interactive шаги некликабельны, а шапка без items работает как трекер статуса (см. сценарий «Статус заявки»). Учтите, что вид отличается: у CdsStages это стрелочная лента, у CdsSteps — индикаторы с линией прогресса. Для переключения равнозначных разделов — CdsTabs.

Анатомия ​

Шкала — это ряд этапов: у каждого есть название, а стрелки-разделители между соседними этапами задают направление процесса. Цвет этапа кодирует состояние: нейтральный — этап впереди, акцентный — текущий, зелёный — пройден, красный — ошибка.

Вариации ​

Этапы ​

Передайте в items массив объектов: название и значение этапа читаются по ключам item-title и item-value (по умолчанию — title и value). Пока current не задан, все этапы нейтральные — процесс ещё не начался.

Sandbox Storybook

Текущий этап ​

current принимает значение активного этапа: он подсвечивается акцентным цветом, а этапы слева от него отмечаются пройденными.

Sandbox Storybook

Ошибка ​

Ошибка задаётся в данных этапа — props: { error: true } у элемента items. Этап краснеет, когда процесс до него дошёл: он текущий или уже пройден.

Sandbox Storybook

Завершение процесса ​

Проп finished отмечает пройденными все этапы сразу — значение current при этом не важно.

Sandbox Storybook

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

Сценарии использования ​

Продвижение заказа ​

Значение current приходит из данных и меняется по мере обработки заказа. Когда пройден последний этап, включите finished — шкала целиком станет зелёной.

Sandbox Storybook

Отклонение на проверке ​

Статус объявления хранится одной строкой, а items, current и finished вычисляются из него. При отклонении этап «Проверка» получает props.error и краснеет — пользователь сразу видит, где процесс остановился.

Sandbox Storybook

Статусы в списке ​

Шкала компактна и не перехватывает клики, поэтому её удобно повторять в каждой строке списка или таблицы: ширину задаёт утилити-класс, а состояние строки — свои current, finished и ошибка.

Sandbox Storybook

API ​

Пропсы

ИмяТипПо умолчаниюОписание
currentstring | number | null | undefinednullТекущий этап
finishedboolean | undefined—Завершены все этапы
itemChildrenSelectItemKey'children'Свойство объекта, содержащее дочерние элементы, либо функция для их получения
itemPropsSelectItemKey'props'Свойство объекта, содержащее пропсы для элемента, либо функция для их получения
itemsany[] | undefined[]Массив элементов для отображения
itemTitleSelectItemKey'title'Свойство объекта, используемое как заголовок элемента, либо функция для его получения
itemTypeSelectItemKey'type'Свойство объекта, определяющее тип элемента (item, divider, subheader), либо функция для его получения
itemValueSelectItemKey'value'Свойство объекта, используемое как значение элемента, либо функция для его получения
returnObjectboolean | undefined—Возвращать в значении модели объект вместо массива
themestring | undefined—Тема компонента
valueComparatorValueComparator | undefined—Функция сравнения значений элементов для определения выбранного состояния

Exposed

ИмяТипОписание
isCurrent(idx: number) => booleanПроверяет, является ли этап с указанным индексом текущим.
isFinishedbooleanПройдены ли все этапы.