[tradein][frontend] Scrapers admin hub page + shared ScraperPage component + settings API fix #895

Closed
opened 2026-05-31 12:58:58 +00:00 by bot-frontend · 1 comment
Collaborator

Frontend. Предшественник: audit admin-UI 2026-05-30; вспомогательный к бэкенд-скрапперам (#856, #848 и т.д.).

Что делает этот PR

  1. Scrapers hub page (/scrapers) — центр управления всеми скрапперами:

    • Карточки провайдеров (Avito / Cian / Yandex) со ссылками на их admin-страницы.
    • GlobalDelaySetting — глобальный порог задержки с read-only таблицей per-source задержек.
    • SchedulesSummary — сводная таблица всех cron-расписаний с быстрым включением/отключением.
  2. Shared _components/ScraperPage.tsx — общие хуки, типы и компоненты для scraper-страниц:

    • Hooks: useScraperSettings, useUpdateScraperSetting, useSchedules, useUpdateSchedule, useStartCitySweep, useCitySweepRuns, useCancelCitySweep.
    • Components: ScraperPage, ResultPanel, CitySweepSection, RunsLogSection, CronScheduleSection, PerSourceDelaySection.
    • Helpers: formatTime, translateStatus, utcToMsk, mskToUtc.
    • Устраняет дублирование в avito/cian/yandex scraper-страницах (миграция провайдеров — следующий шаг).
  3. Fix: useScraperSettings API response shape — cian/yandex страницы ожидали ScraperSetting[] напрямую, API возвращает { settings: ScraperSetting[] }. Добавлен .then(r => r.settings ?? []) + Number(s.request_delay_sec) cast.

  4. Fix: Topbar.ActiveTab — экспорт типа + добавлен "scrapers" в union + nav-item «Скраперы» (admin-only, scopePath /trade-in/api/v1/admin/scrapers).

DoD

  • /scrapers рендерит hub с карточками + global delay + schedules summary.
  • Topbar показывает «Скраперы» nav-item для admin (hidden для pilot по scopePath).
  • npm run type-check + npm run build — clean.
  • useScraperSettings в cian/yandex не падает с map of undefined.

Связано

Admin backfill endpoints #856, scraper audit 2026-05-30.

> Frontend. Предшественник: audit admin-UI 2026-05-30; вспомогательный к бэкенд-скрапперам (#856, #848 и т.д.). ## Что делает этот PR 1. **Scrapers hub page** (`/scrapers`) — центр управления всеми скрапперами: - Карточки провайдеров (Avito / Cian / Yandex) со ссылками на их admin-страницы. - GlobalDelaySetting — глобальный порог задержки с read-only таблицей per-source задержек. - SchedulesSummary — сводная таблица всех cron-расписаний с быстрым включением/отключением. 2. **Shared `_components/ScraperPage.tsx`** — общие хуки, типы и компоненты для scraper-страниц: - Hooks: `useScraperSettings`, `useUpdateScraperSetting`, `useSchedules`, `useUpdateSchedule`, `useStartCitySweep`, `useCitySweepRuns`, `useCancelCitySweep`. - Components: `ScraperPage`, `ResultPanel`, `CitySweepSection`, `RunsLogSection`, `CronScheduleSection`, `PerSourceDelaySection`. - Helpers: `formatTime`, `translateStatus`, `utcToMsk`, `mskToUtc`. - Устраняет дублирование в avito/cian/yandex scraper-страницах (миграция провайдеров — следующий шаг). 3. **Fix: `useScraperSettings` API response shape** — cian/yandex страницы ожидали `ScraperSetting[]` напрямую, API возвращает `{ settings: ScraperSetting[] }`. Добавлен `.then(r => r.settings ?? [])` + `Number(s.request_delay_sec)` cast. 4. **Fix: `Topbar.ActiveTab`** — экспорт типа + добавлен "scrapers" в union + nav-item «Скраперы» (admin-only, scopePath `/trade-in/api/v1/admin/scrapers`). ## DoD - [ ] `/scrapers` рендерит hub с карточками + global delay + schedules summary. - [ ] `Topbar` показывает «Скраперы» nav-item для admin (hidden для pilot по scopePath). - [ ] `npm run type-check` + `npm run build` — clean. - [ ] `useScraperSettings` в cian/yandex не падает с `map of undefined`. ## Связано Admin backfill endpoints #856, scraper audit 2026-05-30.
bot-frontend self-assigned this 2026-05-31 12:59:08 +00:00
bot-frontend added the
priority/p2
scope/frontend
status/wip
tradein
labels 2026-05-31 12:59:13 +00:00
Author
Collaborator

Дублирует уже выполненную работу. Всё описанное (ScraperPage shared component, hub page, Topbar export, cian/yandex API fix) было смерджено в main через PR #878 (feat(tradein): unify scraper admin pages (avito/cian/yandex) + /scrapers hub). Закрываю как duplicate.

Дублирует уже выполненную работу. Всё описанное (ScraperPage shared component, hub page, Topbar export, cian/yandex API fix) было смерджено в main через PR #878 (`feat(tradein): unify scraper admin pages (avito/cian/yandex) + /scrapers hub`). Закрываю как duplicate.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#895
No description provided.