feat: add breadcrumbs

This commit is contained in:
2026-08-14 14:30:20 +03:00
parent e5517cceae
commit 113ad5e9a2
6 changed files with 186 additions and 0 deletions
@@ -0,0 +1,44 @@
# app-breadcrumb-navigation Specification
## Purpose
Позволяет User быстро переходить по иерархии защищённых инвестиционных маршрутов через хлебные крошки над содержимым страницы.
## Requirements
### Requirement: Хлебные крошки доступны на защищённых маршрутах
Клиент SHALL показывать хлебные крошки над содержимым на защищённых маршрутах `/accounts`, `/accounts/:accountId`, `/accounts/:accountId/operations` и `/settings`. Клиент MUST NOT показывать хлебные крошки на public-маршрутах и странице несуществующего маршрута.
#### Scenario: User открывает список Brokerage Account
- **WHEN** авторизованный User открывает `/accounts`
- **THEN** клиент показывает единственную текущую крошку «Брокерские счета» над содержимым списка
#### Scenario: User открывает Settings
- **WHEN** авторизованный User открывает `/settings`
- **THEN** клиент показывает единственную текущую крошку «Настройки» над содержимым страницы
### Requirement: Цепочка крошек отражает иерархию Brokerage Account
На `/accounts/:accountId` клиент SHALL показывать «Брокерские счета → <название счёта>». На `/accounts/:accountId/operations` клиент SHALL показывать «Брокерские счета → <название счёта> → Операции». Если название Brokerage Account недоступно, клиент MUST показывать «Счёт» вместо технического идентификатора.
#### Scenario: User открывает Portfolio счёта с доступным названием
- **WHEN** авторизованный User открывает `/accounts/:accountId` и название Brokerage Account доступно
- **THEN** клиент показывает его название как текущую крошку после ссылки «Брокерские счета»
#### Scenario: User открывает Account Ledger
- **WHEN** авторизованный User открывает `/accounts/:accountId/operations` и название Brokerage Account доступно
- **THEN** клиент показывает ссылку на список, ссылку на Portfolio этого счёта и текущую крошку «Операции» в указанном порядке без отдельного локального действия возврата к счёту
#### Scenario: Название Brokerage Account недоступно
- **WHEN** клиент не получил название Brokerage Account для защищённого маршрута счёта
- **THEN** клиент показывает «Счёт» и не показывает `accountId`
### Requirement: Крошки предоставляют доступную адаптивную навигацию
Клиент SHALL делать ссылками только крошки, предшествующие текущей странице; текущая крошка MUST быть обычным текстом. На узком экране клиент MUST скрывать промежуточные крошки, сохраняя ближайшую родительскую крошку и текущую страницу.
#### Scenario: User выбирает предшествующую крошку
- **WHEN** User выбирает крошку, предшествующую текущей странице
- **THEN** клиент переходит по маршруту этой крошки
#### Scenario: Крошки показаны на узком экране
- **WHEN** цепочка содержит более двух элементов и User открывает её на узком экране
- **THEN** клиент сохраняет видимыми ближайшую родительскую крошку и текущую страницу, скрывая более дальние промежуточные крошки