102 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Дизайн-системный рефакторинг брокерских страниц — Tasks
Дата: 2026-06-21
Связанные документы:
- [Spec](spec.md)
- [Plan](plan.md)
## Task 1: BrokerAccountLayout
- [x] Заменить `div.broker-account` на `<Box component="div">`
- [x] Перевести `header` + `h1` на `<Box>` + `<Heading level={1}>`
- [x] Перевести `nav` на `<Box component="nav">` + `<NavLink>` (Box component={NavLink} с `aria-current="page"`)
- [x] Перевести `div.broker-account__workspace` на grid `<Box>`
- [x] Перевести `div.broker-account__content` на `<Box>`
- [x] Удалить соответствующие CSS-selectors из `styles.css`
## Task 2: BrokerAccountOverviewPage + BrokerSummary + BrokerAssetCards
- [x] Перевести `BrokerSummary` на `<Box>` + `<Text>`
- [x] Перевести eyebrow/label на `<Text variant="label" tone="secondary">`
- [x] Перевести `<strong>` значений на `<Box component="span" sx={{ fontWeight: 700 }}>`
- [x] Перевести `<ul>` cash на `<Box component="ul">`
- [x] Перевести `BrokerAssetCards` на `<Box>` + `<Link>` + `<Text>`
- [x] Перевести `BrokerAccountOverviewPage` container на `<Box component="div">`
- [x] Перевести `<p role="alert">` на `<Text component="p" tone="negative">`
- [x] Оставить hero-gradient без изменений (Out of scope)
## Task 3: BrokerOverviewSkeleton
- [x] Заменить импорт `SkeletonBlock` на DS `<Skeleton>`
- [x] Перевести контейнеры на `<Box>`
- [x] Сделать circular skeleton для портфельной карточки
- [x] Сделать text skeleton для текстовых placeholder'ей
## Task 4: BrokerAllocationChart (wrap only)
- [x] Перевести `<figure>` на `<Box component="figure">`
- [x] Перевести `<figcaption>` на `<Box component="figcaption">`
- [x] Перевести `<p>` пустого состояния на `<Text tone="muted">`
- [x] Перевести `<ul>` / `<li>` легенды на `<Box component="ul">` + `<Box component="li">`
- [x] Перевести swatch на `<Box>` с inline-цветом в `sx`
- [x] Перевести тексты легенды на `<Box component="span">`
- [x] Перевести negative-список на `<Box component="ul">`
- [x] Удалить CSS для `.broker-allocation*` в `styles.css`
## Task 5: BrokerPositionTable + PositionTicker
- [x] Перевести вспомогательные стили на `<Box sx={{...}}>`
- [x] Перевести `<h2>` на `<Heading level={2}>`
- [x] Перевести alert-тексты на `<Text tone="negative">`
- [x] Перевести пагинационные `<button>` на `<Button variant="secondary">`
- [x] Перевести `loading-overlay` на `<Box>`
- [x] Перевести `PositionTicker` ссылки на `<Box component="span" sx={{ fontWeight: 700 }}>`
- [x] Сохранить `loading-spinner` (глобальный класс, пока без замены)
## Task 6: TableSkeleton (DS Skeleton)
- [x] Убрать импорт `SkeletonBlock`
- [x] Заменить на `<Skeleton height={12} width={col.width} shape="text" />`
## Task 7: BrokerOperationsTable
- [x] Перевести вспомогательные стили на `<Box sx={{...}}>`
- [x] Перевести `<h2>` на `<Heading level={2}>`
- [x] Перевести `headerAction` container на `<Box>`
- [x] Перевести пагинационные `<button>` на `<Button variant="secondary">`
- [x] Перевести alert-тексты на `<Text tone="negative">`
- [x] Перевести empty-тексты на `<Text tone="muted">`
- [x] Перевести `<label>` + `<select>` на `<Box component="label">` + `<select>`
- [x] Оставить `loading-spinner` для overlay (глобальный класс)
## Task 8: BrokerPositionsPage + BrokerOperationsPage
- [x] Перевести `BrokerPositionsPage` на `<Box component="section">` + `<Heading>` + `<Text>`
- [x] Перевести `BrokerOperationsPage` на `<Box>` + `<Heading>` + `<Box component="label">` + `<select>`
- [x] Убедиться, что `role="alert"` сохраняется через `<Text tone="negative">`
## Task 9: SkeletonBlock удаление
- [x] Удалить `apps/frontend/src/shared/ui/SkeletonBlock.tsx`
- [x] Удалить экспорт из `apps/frontend/src/shared/ui/index.ts`
- [x] Проверить grep по `SkeletonBlock` — 0 совпадений
## Task 10: Очистка `styles.css`
- [x] Удалить блоки `.broker-account__*`
- [x] Удалить блоки `.broker-overview__*`
- [x] Удалить блоки `.broker-allocation__*`
- [x] Удалить блоки `.broker-operations__toolbar*`
- [x] Удалить CSS-переменные `--broker-overview-*`
- [x] Оставить `.loading-spinner`, `.skeleton`, `:root` общие переменные
## Task 11: Финальная проверка
- [x] `npm run test:frontend` — 111 tests PASS
- [x] `npm run lint -w apps/frontend` — без ошибок
- [x] `npm run build:frontend` — без TypeScript/Vite ошибок
- [x] grep по `broker-(account|overview|allocation)` в TSX — 0 совпадений
- [x] grep по `SkeletonBlock` в TSX — 0 совпадений
- [x] CSS: 274 → 99 строк