## 1. Маршруты и конфиг - [x] 1.1 Добавить в `shared/config/routes.ts` константы вложенных путей профиля (`PROFILE_DETAILS = '/profile/details'`, `PROFILE_SECURITY`, `PROFILE_MNEMONIC`, `PROFILE_TRANSACTIONS`); сохранить `TRANSACTIONS` для обратного редиректа. - [x] 1.2 В `app/providers/RouterProvider.tsx` обернуть `ProfilePage` в `` и описать вложенные маршруты: `index` → ``, `details`, `security`, `mnemonic`, `transactions`. - [x] 1.3 Заменить маршрут `/transactions` на ``; убрать прямой рендер `TransactionsPage` по `/transactions`. - [x] 1.4 Добавить поясняющие комментарии о двух уровнях `` (WalletLayout → ProfilePage). ## 2. Layout страницы профиля - [x] 2.1 Переработать `pages/profile/ui/ProfilePage.tsx` в layout: убрать собственный `WalletHeader`; двухколоночная разметка — слева `ProfileMenu`, справа `KycBanner` над ``. - [x] 2.2 Обновить `pages/profile/ui/ProfilePage.module.css`: колонки ~25% / ~75% + `gap`; перенести медиа-брейкпоинты (< 1024px — стек в одну колонку, < 640px — паддинги). ## 3. Боковое меню (widget) - [x] 3.1 Создать `widgets/profile/ui/ProfileMenu.tsx`: сверху закреплённый `ProfileSummary`, ниже список пунктов через `NavLink` (Данные профиля, Безопасность, Мнемоническая фраза, Транзакции) с подсветкой активного (`aria-current`/класс). - [x] 3.2 Создать `widgets/profile/ui/ProfileMenu.module.css` (список, активное состояние, отступы). - [x] 3.3 Экспортировать `ProfileMenu` из `widgets/profile/index.ts`. ## 4. Контент-пункты - [x] 4.1 Создать компонент-пункт «Данные профиля» (рендерит ``); показывать `Spinner`, пока `useMe` грузится. - [x] 4.2 Создать компонент-пункт «Безопасность» (``) с состоянием загрузки. - [x] 4.3 Создать компонент-пункт «Мнемоническая фраза» (``) с состоянием загрузки. - [x] 4.4 Вынести содержимое `pages/transactions/ui/TransactionsPage.tsx` (список + табы «Транзакции/Заявки» для юр. лиц через `useMe`) в переиспользуемый блок и подключить как компонент-пункт «Транзакции»; показывать `Spinner` во время загрузки. ## 5. Состояние загрузки - [x] 5.1 Заменить `if (!data) return null` в блоках профиля на отображение `` в области контента (меню остаётся доступным). - [x] 5.2 Убедиться, что `Spinner` центрируется в правой колонке (использовать `fullscreen`/класс в пределах контента). ## 6. Проверка - [x] 6.1 `npm run build` (tsc) проходит без ошибок типов и сборки. - [ ] 6.2 Ручная проверка deep-link: прямой переход на `/profile/details`, `/profile/security`, `/profile/mnemonic`, `/profile/transactions` открывает нужный пункт. - [ ] 6.3 `/profile` редиректит на `/profile/details`; `/transactions` редиректит на `/profile/transactions`. - [ ] 6.4 Кнопка «Назад» переключает между ранее открытыми пунктами; активный пункт меню подсвечен. - [ ] 6.5 Транзакции: для юр. лица видны табы «Транзакции/Заявки», для физлица — только список. - [ ] 6.6 Мобильный вид (< 1024px): меню и контент схлопываются в одну колонку; `KycBanner` и `Spinner` отображаются корректно.