- 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
46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
# Frontend FSD Screener — задачи
|
|
|
|
Статус: выполнено
|
|
|
|
## 1. API слой
|
|
|
|
- [x] Создать `features/screener/api/screenerApi.ts` — перенос `ScreenerQuery` + `getScreenerResults`
|
|
- [x] Обновить импорты: `@/shared/api/client`, `@/shared/api/responses`
|
|
|
|
## 2. Модель
|
|
|
|
- [x] Создать `features/screener/model/useScreener.ts` — перенос хука
|
|
- [x] Создать `features/screener/model/index.ts`
|
|
|
|
## 3. UI компоненты
|
|
|
|
- [x] Перенести `FilterPanel.tsx` в `features/screener/ui/`
|
|
- [x] Перенести `FilterPanelShare.tsx` в `features/screener/ui/`
|
|
- [x] Перенести `FilterPanelBond.tsx` в `features/screener/ui/`
|
|
- [x] Перенести `ScreenerTable.tsx` в `features/screener/ui/`
|
|
- [x] Создать `features/screener/ui/index.ts`
|
|
- [x] Создать `features/screener/index.ts`
|
|
|
|
## 4. Pages
|
|
|
|
- [x] Создать `pages/screener/ui/ScreenerPage.tsx` — обновить импорты на `@/features/screener`
|
|
- [x] Создать `pages/screener/index.ts`
|
|
|
|
## 5. Роутинг
|
|
|
|
- [x] Обновить `app/routing/AppRoutes.tsx` — import from `@/pages/screener`
|
|
|
|
## 6. Удаление legacy
|
|
|
|
- [x] Удалить `api/screener.ts`
|
|
- [x] Удалить `hooks/useScreener.ts`
|
|
- [x] Удалить `components/screener/` (директория)
|
|
|
|
## 7. Verification
|
|
|
|
- [x] `npm test -w apps/frontend` — PASS
|
|
- [x] `npm run lint -w apps/frontend` — PASS
|
|
- [x] `npm run build -w apps/frontend` — PASS
|
|
- [x] Нет deep imports в `features/screener/` извне
|
|
- [x] `pages/screener/` импортируется только через barrel
|