231 Commits

Author SHA1 Message Date
a13b5145f7 docs(frontend): align tooling spec with implementation
Some checks failed
CI / ci (pull_request) Failing after 3m32s
CI / ci (push) Failing after 2m50s
2026-06-23 21:30:11 +03:00
b26021016c fix(frontend): clean up mock setup and route params 2026-06-23 21:22:37 +03:00
76cffc061d fix: provide portfolio via BrokerAccountContext, fix Обзор link adding trailing dot 2026-06-23 20:41:23 +03:00
aea74bda3b fix: sync SessionProvider auth state to Zustand store for router guard
requireAuth() in routeTree.tsx reads isAuthenticated from useSessionStore
(Zustand), but SessionProvider only managed state via React context.
After login, the Zustand store stayed false, causing protected route guards
to redirect to /login even when authenticated.
2026-06-23 20:27:50 +03:00
9932278b64 feat: complete Phase 3 API type unification, delete stale test file
- Delete shared/api/responses.ts, move type re-exports to index.ts
- Update all 55+ imports from shared/api/responses to shared/api
- Delete stale client.test.ts (tested deleted client.ts)
- Run biome checks and fix import ordering
- Update tasks.md and plan.md to reflect actual approach
2026-06-23 20:24:16 +03:00
063e80c375 feat(openapi): unify frontend types with codegen, fix backend nullable DTOs
- Fix ApiResponseMeta nullable property (add type: String) to prevent Record<string, never> in codegen
- Fix broker events DTO nullable fields with proper type annotations
- Regenerate frontend types.ts from updated Swagger schema
- Replace all hand-written types in responses.ts with codegen aliases
- Remove stale BrokerPortfolioEvent/BrokerEventsSummary/BrokerEventsData interfaces
- Fix codegen output path in frontend package.json
2026-06-23 19:58:23 +03:00
5b794c0419 feat: add Swagger response DTOs for all missing endpoints
- Shares: ShareEnvelopeDto, ShareMarketDataEnvelopeDto, DividendsEnvelopeDto,
  ShareHistoryEnvelopeDto, DividendItemDto, HistoryItemDto
- Bonds: BondEnvelopeDto, BondMarketDataEnvelopeDto, BondHistoryEnvelopeDto,
  BondHistoryItemDto
- Candles: CandleItemDto, CandleEnvelopeDto
- Securities: SearchResultItemDto, SearchEnvelopeDto
- Health: HealthResponseDto, HealthEnvelopeDto
- Add @ApiOkResponse decorators to all previously undocumented endpoints
- Reuse ApiResponseMeta from common for all envelope DTOs
2026-06-23 07:17:30 +03:00
cbb5d09bc3 docs: update tasks.md — mark Phase 2 prettier removal as complete 2026-06-23 06:58:55 +03:00
c7a8993b4a chore: remove prettier, consolidate formatting under biome
- Remove prettier dependency and config files (.prettierrc, .prettierignore)
- Update root format/format:check scripts to use biome only (via frontend)
- Update lint-staged: remove prettier --check, keep biome + eslint
- Update CI: remove redundant format:check step
- Update ADR-018 with code-first TanStack Router approach note
2026-06-23 06:58:35 +03:00
7e10b4b8aa docs: update tasks and plan to reflect actual implementation progress
Mark completed tasks across all 6 phases, document code-first
router approach deviation, update Phase 6 plan with actual steps
2026-06-23 06:54:29 +03:00
cfadb2adbe feat: migrate from react-router-dom to @tanstack/react-router (code-first)
- Create code-first route tree in src/app/routing/routeTree.tsx
- Replace ProtectedRoute with beforeLoad auth guards
- Add useSearchParamsCompat for URLSearchParams access
- Update App.tsx, layouts, and all page/widget imports
- Add frontend tooling: biome, prettier, env config
- Update all tests for TanStack Router compatibility
- Remove react-router-dom dependency, @tanstack/router-plugin
- Consolidate biome config at root level
2026-06-23 06:51:48 +03:00
6d3601a8f4 docs: add plan, tasks, research, and ADRs for frontend infrastructure tooling 2026-06-23 06:07:23 +03:00
203b7cbf20 docs: add spec for frontend infrastructure tooling 2026-06-23 06:04:25 +03:00
462212c95e docs: update apps/docs — fix inconsistencies, add broker events diagrams
Some checks failed
CI / ci (pull_request) Failing after 3m18s
CI / ci (push) Failing after 3m16s
2026-06-22 22:15:51 +03:00
62a8cffc96 fix: resolve unhandled promise rejection in broker events test; update docs: roadmap and epics status 2026-06-22 22:02:43 +03:00
f7dc338719 feat: add actual payouts and filter-as-draft UX to broker events calendar
Some checks failed
CI / ci (pull_request) Failing after 3m9s
CI / ci (push) Failing after 3m9s
- Backend: actual events from T-Bank operations, types filter, split forecast/actual summary
- Frontend: draft/applied filters with multi-select types, status column (Факт/Прогноз), green actual amounts
- Docs: update spec, plan, tasks
2026-06-22 21:48:03 +03:00
c71ba090ad test: remove unused test
Some checks failed
CI / ci (push) Failing after 3m15s
2026-06-22 20:21:20 +03:00
6f4b46c964 fix: flatten queryKey to primitives for reliable TanStack Query key comparison
Some checks failed
CI / ci (pull_request) Failing after 3m12s
CI / ci (push) Failing after 2m53s
2026-06-22 19:56:53 +03:00
0ddd9b5f80 feat: add date range selection to broker events page 2026-06-22 06:58:59 +03:00
3027b4f0f0 docs: update plan and tasks for broker events date range selection 2026-06-22 06:56:18 +03:00
595d059151 feat: add broker events calendar and payout projections for T-Bank accounts
Some checks failed
CI / ci (push) Failing after 3m1s
2026-06-22 06:41:37 +03:00
7b1d649853 docs: add broker events and payouts feature docs
Some checks failed
CI / ci (pull_request) Failing after 2m48s
CI / ci (push) Failing after 2m44s
2026-06-21 21:22:56 +03:00
723250f0b2 docs: add table migration planning docs
Some checks are pending
CI / ci (push) Has started running
2026-06-21 21:14:30 +03:00
6c768ef6a9 docs: mark pilot-migration and broker-accounts-page-migration as implemented
Some checks failed
CI / ci (pull_request) Failing after 3m9s
CI / ci (push) Failing after 3m8s
2026-06-21 20:51:46 +03:00
5ea1fcfe14 docs: mark broker-account-sections-ds-migration spec as implemented 2026-06-21 20:47:01 +03:00
1cabe2d71e feat: migrate BrokerAllocationChart wrappers to design system 2026-06-21 20:38:01 +03:00
6debf66ac8 docs: mark broker account sections DS migration tasks complete 2026-06-21 20:31:52 +03:00
b41ee9fce4 chore: remove all orphaned broker-* CSS classes and variables 2026-06-21 20:30:39 +03:00
85fbfcdb0c chore: remove SkeletonBlock from shared/ui exports 2026-06-21 20:24:03 +03:00
aa56c8a48d chore: remove legacy SkeletonBlock component 2026-06-21 20:21:15 +03:00
8ad5f3c70c feat: migrate BrokerPositionsPage and BrokerOperationsPage 2026-06-21 20:21:00 +03:00
e044b64de4 feat: migrate BrokerOperationsTable to design system 2026-06-21 18:59:58 +03:00
da656330b3 feat: migrate BrokerPositionTable, PositionTicker and TableSkeleton 2026-06-21 18:41:53 +03:00
9a94f4e3a9 chore: remove orphaned broker-overview CSS classes 2026-06-21 18:20:03 +03:00
a9a95dae69 feat: migrate BrokerOverviewSkeleton to design system Skeleton 2026-06-21 18:16:47 +03:00
ef97fd7136 feat: migrate BrokerSummary, BrokerAssetCards and BrokerAccountOverviewPage 2026-06-21 18:14:49 +03:00
3682f43aa6 feat: migrate BrokerAccountLayout to design system 2026-06-21 18:06:03 +03:00
bd27bba66d docs(sdd): add broker account sections DS migration spec/plan/tasks 2026-06-21 18:00:39 +03:00
860bed159c feat(frontend): migrate BrokerAccountsPage and widgets to design system 2026-06-21 17:42:05 +03:00
62a3389bfb feat(frontend): migrate LoginPage, RegisterPage, ProfilePage to design system
- LoginPage: <input>/<label> → <TextField>, <button> → <Button>,
  <h1> → <Heading>, inline error → <Text tone="negative">
- RegisterPage: same pattern, 4 fields, minLength via slotProps.htmlInput
- ProfilePage: <div> inline styles → <Surface>, <input> → <TextField>,
  <button> → <Button>, email/role → <Text>+<Text variant="label">
- Tests: loading state checks updated from text change to
  toBeDisabled() (DS Button keeps text, shows spinner)
- 264 lines removed, 134 net reduction
2026-06-21 17:23:04 +03:00
a8741cfeab fix: resolve Vite MUI deep import by moving to barrel import + updated ESLint allowlist
- Changed @mui/material/Box deep imports to { Box } from '@mui/material'
- Updated no-restricted-imports to only restrict DS-covered components,
  allowing Box/Stack/Grid for layout
2026-06-21 17:15:45 +03:00
bd33412691 feat(frontend): migrate HomePage and SearchBar to design system components
- HomePage: replace inline styles with <Heading>, <Text>, <Box>
- SearchBar: replace <input> with <TextField>, <ul> with <Surface>,
  <li> with <Box>+<Text>+<Chip>, hardcoded hex with theme tokens
- ESLint no-restricted-imports respected via @mui/material/Box deep import
- Logic unchanged, all 111 tests pass
2026-06-21 16:57:19 +03:00
3534ec4f77 fix(design-system): add @storybook/test and @testing-library/dom deps
Some checks failed
CI / ci (pull_request) Failing after 3m26s
CI / ci (push) Failing after 2m49s
- @storybook/test needed by stories (import { fn })
- npm overrides resolves peer dep conflict with storybook 10
- @testing-library/dom explicit dep (peer of @testing-library/react)
- 157 design-system tests + 111 frontend tests all pass
2026-06-21 15:49:59 +03:00
339845dd57 ci(design-system): enforce foundation quality gates 2026-06-21 15:40:21 +03:00
e6cf852741 docs(design-system): publish usage guidelines and ADR-016 2026-06-21 15:40:17 +03:00
53659a36b1 feat(design-system): add data components, form/page-state patterns, and frontend integration
- Inputs: TextField, Select, Checkbox
- Surfaces: Surface, Card, Chip, Badge
- Feedback: Alert, Dialog, Skeleton, Progress
- Financial data: DataTable, Metric, Money, PriceChange
- Form & page-state: FormField, FilterBar, EmptyState, ErrorState, LoadingState
- MUI CssVarsProvider -> ThemeProvider deprecation fix
- Inter font bundled via @fontsource/inter
- ESLint no-restricted-imports (warn) for gradual migration
- storybook-static gitignored

All 268 tests pass (157 design-system + 111 frontend)
2026-06-21 09:49:18 +03:00
55221dbf22 feat(design-system): add form and page-state patterns
- FormField: label, htmlFor, helperText, error, required, children
- FilterBar: responsive layout container with children and actions
- EmptyState: semantic heading with optional description and action
- ErrorState: semantic heading with optional description and action
- LoadingState: aria-live polite, section/page sizes, reduced-motion
2026-06-21 09:44:12 +03:00
74ca576310 feat(design-system): add typography and actions
Implement Text, Heading, Link, Button, and IconButton components with TDD and Storybook stories. Each component wraps MUI with restricted props for visual consistency.
2026-06-21 09:32:58 +03:00
886ac7b87a build(design-system): configure Storybook workbench 2026-06-21 09:29:26 +03:00
1107a1fc8b feat(design-system): add MUI theme adapter 2026-06-21 09:28:38 +03:00