PageSidebar
Боковая навигация страницы: список разделов (items) с группами и сворачиванием, опциональный поиск, шапка (header) и подвал (footerItems). Используется самостоятельно и как слот sidebar в PageServices.
Когда использовать
- Навигация по разделам внутри одной страницы продукта.
- Нужен сворачиваемый сайдбар с группировкой пунктов, поиском и шапкой «назад» / «заголовок».
Анатомия
Элементы (items, footerItems)
SidebarItem — либо ссылка (href), либо узел с вложенностью (items). Базовые поля: id, label, onClick, beforeContent / afterContent, disabledReason (+ disabledReasonPlacement).
type—collapse(по умолчанию, сворачиваемая группа) илиgroup.divider— разделитель после узла.
Шапка (header)
type: 'title'— заголовок сlabelи обязательнойicon, опциональноafterContent.type: 'back'— кнопка «назад» сlabel,hrefилиonClick.
Состояние и поведение
open/defaultOpen/onOpenChanged— раскрытие сайдбара (controlled / uncontrolled).selected/onSelect— выбранный пункт и колбэк.hasSearch— строка поиска по пунктам.collapse— поведение сворачивания (пропсы@cloud-ru/ds-list).
Установка
pnpm add @cloud-ru/ds-uikit-product-page-layout
import { PageSidebar } from '@cloud-ru/ds-uikit-product-page-layout'
Props
Types
Props
PageSidebarProps| Prop | Type | Default | Required | Description |
|---|---|---|---|---|
className | string | — | no | |
collapse | CollapseState | — | no | |
data-test-id | string | — | no | |
defaultOpen | boolean | — | no | |
documentation | Documentation | — | no | Зарезервировано, в текущей реализации не используется. |
footerItems | SidebarItem[] | — | no | |
hasSearch | boolean | — | no | |
header | HeaderProps | — | no | |
items | SidebarItem[] | — | yes | |
onOpenChanged | ((open: boolean) => void) | — | no | |
onSelect | ((id: string | number) => void) | — | no | |
open | boolean | — | no | |
pageContainerId | string | — | no | Зарезервировано, в текущей реализации не используется. |
selected | string | number | — | no |