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
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
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
462212c95e
docs: update apps/docs — fix inconsistencies, add broker events diagrams
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
...
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
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
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
595d059151
feat: add broker events calendar and payout projections for T-Bank accounts
CI / ci (push) Failing after 3m1s
2026-06-22 06:41:37 +03:00
1cabe2d71e
feat: migrate BrokerAllocationChart wrappers to design system
2026-06-21 20:38:01 +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
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
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
1b6fd39be3
feat: add frontend infrastructure libraries (ky, Zustand, MUI, dayjs, clsx, tanstack-table, rhf, zod)
...
CI / ci (pull_request) Failing after 2m55s
CI / ci (push) Failing after 2m53s
- install ky, zustand, @mui/material, @fontsource/roboto, dayjs, clsx
- install @tanstack/react-table, react-hook-form, zod, @hookform/resolvers
- create kyClient.ts with auth interceptors
- create Zustand store for session (useSessionStore.ts)
- add MUI theming (theme.ts, ThemeProvider in AppProviders)
- add dayjs utils with ru locale (formatDate, formatRelative)
- add clsx cn() utility
- add base Table component using @tanstack/react-table
- create ADR-015 documenting architectural decisions
- create SDD artifacts: spec.md, plan.md, tasks.md
- build, lint, and 111 tests passing
2026-06-21 08:26:27 +03:00
2744608d06
chore: add @conarti/eslint-plugin-feature-sliced for FSD layer enforcement
CI / ci (pull_request) Failing after 2m23s
CI / ci (push) Failing after 2m19s
2026-06-20 23:21:14 +03:00
ad196164ee
refactor: extract AddPositionForm to features layer
2026-06-20 23:16:20 +03:00
d1f9128441
refactor: extract BrokerOverview components to widgets layer
2026-06-20 23:14:24 +03:00
8e70691bde
refactor: extract BrokerPositionTable to widgets layer
2026-06-20 23:12:28 +03:00
943a6aec2d
fix: move test SessionProvider and SessionContext to shared layer for FSD compliance
2026-06-20 23:10:56 +03:00
79011c779f
fix: move test SessionProvider to shared layer for FSD compliance
2026-06-20 23:04:34 +03:00
1774c7ffd6
refactor(frontend): bring FSD architecture into compliance
...
CI / ci (pull_request) Failing after 2m32s
CI / ci (push) Failing after 2m17s
- Remove cross-entity import (broker-position -> broker-operation)
- Extract duplicated formatters to shared/lib/formatters.ts
- Flatten shared/ui/broker-allocation-bar nesting
- Clean up entities/stock/index.ts public API
All 111 tests pass, build clean.
2026-06-20 22:43:44 +03:00
1f426e9734
refactor(frontend): complete FSD compliance - barrel imports, test/ move, auth extraction, delete App.tsx and stale dir
CI / ci (pull_request) Failing after 2m37s
CI / ci (push) Failing after 2m30s
2026-06-20 22:31:34 +03:00
2fd2f0611b
refactor(frontend): move BrokerAllocationBar to shared/ui, fix cross-entity imports and missing barrel exports
2026-06-20 22:07:25 +03:00
b9d7a6ad69
refactor(frontend): complete FSD migration - import aliases, BrokerAccountLayout move, search api/ layer
2026-06-20 21:57:04 +03:00
055bc23097
refactor(frontend): migrate auth/portfolio pages to FSD, add layer boundaries
...
CI / ci (pull_request) Failing after 2m45s
CI / ci (push) Failing after 2m41s
- Convert LoginPage, RegisterPage, ProfilePage to FSD structure (index.ts + ui/)
- Convert PortfoliosListPage, PortfolioDetailPage to FSD structure
- Replace relative imports with @/ aliases in portfolio pages
- Add ESLint import/no-restricted-paths for FSD layer boundaries
- Refactor useSession test to mock context instead of import from app/
- Mark frontend-fsd-screener tasks as complete
2026-06-20 21:42:33 +03:00
9b208481dd
feat: migrate screener to FSD with first feature-slice (features/screener)
CI / ci (pull_request) Failing after 2m49s
CI / ci (push) Failing after 2m36s
2026-06-20 21:23:08 +03:00
605a4e8d00
docs: update frontend overview for portfolio FSD migration
2026-06-20 21:11:54 +03:00
16f5e1752c
refactor(frontend): remove flat components/portfolios
2026-06-20 21:11:30 +03:00
1ef1a3c902
refactor(frontend): switch pages/portfolios to widget imports
2026-06-20 21:11:30 +03:00
cfa890fdbe
feat: add portfolio widgets with barrel files (FSD migration)
2026-06-20 21:11:30 +03:00