Files
frontend/openspec/changes/merge-profile-transactions/proposal.md
2026-06-29 17:41:56 +03:00

5.0 KiB
Raw Blame History

Why

Сейчас профиль и транзакции — это две отдельные страницы (/profile и /transactions), между которыми нужно переключаться через общую навигацию. Профиль показывает все свои блоки (данные, безопасность, мнемоника) одним длинным скроллом. Объединение их в единый раздел с боковым меню даёт пользователю одну точку входа в «личный кабинет», убирает длинный скролл и делает транзакции равноправным пунктом наряду с настройками профиля.

What Changes

  • Страница профиля превращается в layout «личного кабинета»: слева колонка ~25% (меню), справа колонка ~75% (контент активного пункта).
  • В левой колонке сверху всегда закреплён блок ProfileSummary (аватар + сводка), под ним — список пунктов меню.
  • Существующие блоки профиля становятся пунктами меню и показываются в правой колонке по клику:
    • Данные профиля (ProfileDetails) — пункт по умолчанию.
    • Безопасность (SecuritySection).
    • Мнемоническая фраза (MnemonicSection).
  • Транзакции добавляются как ещё один пункт меню; в правой колонке рендерится содержимое бывшей TransactionsPage (список транзакций + табы «Транзакции / Заявки» для юр. лиц).
  • Навигация между пунктами — через отдельные вложенные URL (/profile/details, /profile/security, /profile/mnemonic, /profile/transactions). Работают кнопка «Назад» и прямые ссылки.
  • /profile редиректит на пункт по умолчанию (/profile/details).
  • BREAKING: старый маршрут /transactions редиректит на /profile/transactions; отдельная страница транзакций в навигации больше не используется как самостоятельная.
  • KycBanner отображается над контентом в правой колонке.
  • Пока данные активного пункта загружаются, в правой колонке показывается индикатор загрузки (переиспользуется Spinner из @shared/ui/Spinner); меню остаётся доступным.
  • Адаптив: на узких экранах (<1024px) меню и контент схлопываются в одну колонку, сохраняя текущее мобильное поведение профиля.

Capabilities

New Capabilities

  • profile-dashboard: единый раздел личного кабинета с боковым меню (25/75), вложенной маршрутизацией по пунктам, закреплённой сводкой профиля, интеграцией транзакций как пункта меню и состоянием загрузки контента.

Modified Capabilities

Impact

  • pages: pages/profile (переработка ProfilePage в layout с <Outlet/> или переключателем пунктов), pages/transactions (контент переезжает в пункт меню; маршрут редиректится).
  • widgets: widgets/profile (новый виджет бокового меню / навигации; ProfileSummary, ProfileDetails, SecuritySection, MnemonicSection, KycBanner переиспользуются), widgets/transactions-list, widgets/purchase-requests-list (переиспользуются как контент пункта).
  • shared: shared/config/routes.ts — новые вложенные маршруты профиля и редирект со старого /transactions; shared/ui/Spinner — переиспользуется.
  • app: app/providers/RouterProvider.tsx — описание вложенных маршрутов под ProtectedRoute, согласование с WalletLayout (профиль сейчас рендерит собственный WalletHeader, а транзакции живут внутри WalletLayout — нужно унифицировать обёртку).
  • Тестового раннера нет — проверка через npm run build (tsc) и ручной прогон.