[CL-REFACTOR] refactor(intake): split StepDetails god-file (1017->784+368) #989

Merged
andrei merged 1 commit from agent-fullstack/pix-12908 into master 2026-07-03 21:15:03 +00:00
Owner

Что сделано

28-useState монолит app/src/pages/partners/intake/StepDetails.tsx (1017 строк) разбит на:

  • StepDetails.tsx (784) — чистый view/JSX, без бизнес-логики
  • useStepDetailsForm.ts (368) — весь form state, 24 handler'а и PATCH submit-логика с field-level ошибками

Публичный API (StepDetails, StepDetailsProps) не менялся — behavior-preserving.

Зачем

PIX-12908 (tech debt из vault docs/vault/AUDIT-STATUS.md). Тот же паттерн, что недавние god-file split'ы: AdminIntakeQueue 830→479+364 (#983), complianceReport 839→482+374 (#982), DemoPortfolio 1007→293+714 (#977). Оба новых файла теперь <800 строк.

План тестирования

  • Существующий TDD-suite StepDetails.test.tsx — 19/19 GREEN (поведение не менялось)
  • IntakeWizard.test.tsx — 6/6 GREEN (публичный экспорт не тронут)
  • Полный intake-suite — 92/92 GREEN
  • pnpm exec tsc --noEmit — 0 ошибок
  • pnpm exec eslint --max-warnings 0 — 0 warnings
  • pnpm run i18n:check — 0 missing translations
  • Локальный pre-push hook (full build + prerender) — зелёный

Где могу ошибаться

GitNexus индекс stale (закэширован на commit 0b658fc, HEAD ушёл на 8dc9cf7) — не смог прогнать gitnexus_impact/gitnexus_detect_changes. Использован rg-fallback: единственный потребитель StepDetailsIntakeWizard.tsx, импортирует именованный экспорт без изменения сигнатуры пропсов, риск низкий.

## Что сделано 28-useState монолит `app/src/pages/partners/intake/StepDetails.tsx` (1017 строк) разбит на: - `StepDetails.tsx` (784) — чистый view/JSX, без бизнес-логики - `useStepDetailsForm.ts` (368) — весь form state, 24 handler'а и PATCH submit-логика с field-level ошибками Публичный API (`StepDetails`, `StepDetailsProps`) не менялся — behavior-preserving. ## Зачем PIX-12908 (tech debt из vault `docs/vault/AUDIT-STATUS.md`). Тот же паттерн, что недавние god-file split'ы: AdminIntakeQueue 830→479+364 (#983), complianceReport 839→482+374 (#982), DemoPortfolio 1007→293+714 (#977). Оба новых файла теперь <800 строк. ## План тестирования - Существующий TDD-suite `StepDetails.test.tsx` — 19/19 GREEN (поведение не менялось) - `IntakeWizard.test.tsx` — 6/6 GREEN (публичный экспорт не тронут) - Полный intake-suite — 92/92 GREEN - `pnpm exec tsc --noEmit` — 0 ошибок - `pnpm exec eslint --max-warnings 0` — 0 warnings - `pnpm run i18n:check` — 0 missing translations - Локальный pre-push hook (full build + prerender) — зелёный ## Где могу ошибаться GitNexus индекс stale (закэширован на commit `0b658fc`, HEAD ушёл на `8dc9cf7`) — не смог прогнать `gitnexus_impact`/`gitnexus_detect_changes`. Использован `rg`-fallback: единственный потребитель `StepDetails` — `IntakeWizard.tsx`, импортирует именованный экспорт без изменения сигнатуры пропсов, риск низкий.
[CL-REFACTOR] refactor(intake): split StepDetails god-file (1017->784+368)
All checks were successful
CI / Contracts (pull_request) Successful in 2m41s
CI / Telegram Mini App (pull_request) Successful in 1m35s
CI / Python SDK (pull_request) Successful in 24s
CI / Secrets Scan (pull_request) Successful in 13s
CI / Prisma Migrate Gate (pull_request) Successful in 1m57s
React Doctor / React Doctor / App (pull_request) Successful in 2m40s
CI / API (pull_request) Successful in 18m56s
CI / App (pull_request) Successful in 20m56s
5b5d93ac38
Что сделано: 28-useState монолит StepDetails.tsx (форма шага 3 intake-wizard)
разбит на StepDetails.tsx (784, чистый view/JSX) + useStepDetailsForm.ts (368,
весь form state + 24 handler'а + PATCH submit-логика с field-level ошибками).

Зачем: PIX-12908, backlog tech debt vault/AUDIT-STATUS.md. Тот же паттерн, что
недавние god-file split'ы (AdminIntakeQueue #983, complianceReport #982,
DemoPortfolio #977) — оба файла теперь <800 строк.

План тестирования: существующий TDD-suite StepDetails.test.tsx 19/19 GREEN
(поведение не менялось), IntakeWizard.test.tsx 6/6 GREEN (публичный
StepDetails/StepDetailsProps не тронут). tsc --noEmit 0 ошибок, eslint 0
warnings, i18n:check 0 missing translations.

Где могу ошибаться: GitNexus индекс stale (0b658fc vs HEAD) — не смог
прогнать gitnexus_impact/detect_changes, использован rg-fallback чтобы найти
всех потребителей StepDetails (только IntakeWizard.tsx, импортирует именованный
экспорт без изменений сигнатуры — риск низкий).
andrei merged commit b50c08b193 into master 2026-07-03 21:15:03 +00:00
andrei deleted branch agent-fullstack/pix-12908 2026-07-03 21:15:03 +00:00
Sign in to join this conversation.
No reviewers
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
europa-tech-srl/europatech!989
No description provided.