# Frontend FSD Market Pages — задачи Статус: выполнено Подробные шаги, карта файлов и verification-команды находятся в [plan.md](plan.md). Финальная verification: - `npm test -w apps/frontend` — PASS (`42` files, `230` tests) - `npm run lint -w apps/frontend` — PASS - `npm run build -w apps/frontend` — PASS - `npm run build -w apps/docs` — PASS Deep import verification: - `rg -n "@/entities/search/model|@/widgets/search-bar/ui|@/widgets/price-chart/ui|@/widgets/stock-details/ui|@/widgets/bond-details/ui|@/widgets/dividends-table/ui|@/pages/home/ui|@/pages/stock/ui|@/pages/bond/ui" apps/frontend/src apps/docs/docs` — no matches ## 1. Search slice - [x] Создать `entities/search` с `useSearch` и public API. - [x] Перенести `SearchBar` в `widgets/search-bar`. - [x] Оставить `hooks/useSearch.ts` и `components/SearchBar.tsx` как re-export shims. - [x] Переключить `AppLayout` на `@/widgets/search-bar`. - [x] Прогнать `useSearch` и `SearchBar` тесты после переноса. ## 2. Market widgets - [x] Перенести `PriceChart` в `widgets/price-chart`. - [x] Перенести `StockDetails` в `widgets/stock-details`. - [x] Перенести `BondDetails` в `widgets/bond-details`. - [x] Вынести таблицу дивидендов в `widgets/dividends-table`. - [x] Привязать widget tests к новым slice boundaries. ## 3. Market pages - [x] Создать `pages/home`, `pages/stock`, `pages/bond` с public API. - [x] Сохранить orchestration route params и data loading в `pages/stock` и `pages/bond`. - [x] Переключить `AppRoutes` на новые page entrypoints. - [x] Оставить `pages/HomePage.tsx`, `StockPage.tsx`, `BondPage.tsx` как re-export shims. - [x] Прогнать page tests после переключения маршрутов. ## 4. Docs и verification - [x] Добавить ADR по market FSD migration. - [x] Обновить frontend docs (`overview.md`, `components.md`, `hooks.md`, `routes.md`). - [x] Проверить отсутствие внешних deep imports в новые `model/` и `ui/` директории. - [x] Выполнить финальную проверку: frontend `test`, `lint`, `build`, docs `build`.