|
All checks were successful
CI Trade-In / changes (pull_request) Successful in 15s
CI / changes (pull_request) Successful in 15s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Successful in 1m43s
CI / openapi-codegen-check (pull_request) Successful in 3m21s
Хвост плана #2181: одним кликом применить вариант из блока «Как участок сходится» к §7 «Концепция». - SectionAlternatives: на каждой карточке варианта secondary-CTA (--accent-2, orange), передаёт класс/этажность/тип застройки варианта в §7 и плавно скроллит к #section-7. Дизейбл, пока §7 считает. - Section7Concept: useEffect на pendingProgram — раскрывает §7, подбирает тип секции + пятно из каталога по КЛАССУ варианта (pickTypeForClass, как pickDefaultType но для заданного класса), выставляет этажность/класс/тип, densify=false, запускает handleGenerate; после старта зовёт onProgramApplied (родитель обнуляет pending → повторный клик снова срабатывает). autoRan/ autoRetried refs не трогаются — ручной пересчёт всегда разрешён. Тонкий канал onPendingChange(concept.isPending) вверх для дизейбла CTA. - AnalysisPageContent: state pendingProgram + conceptPending, проброс между двумя секциями. - Новый узкий тип PendingConceptProgram в types/site-finder. tsc --noEmit чисто, next lint без предупреждений. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .eslintrc.json | ||
| Dockerfile | ||
| next-env.d.ts | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| sentry.client.config.ts | ||
| sentry.edge.config.ts | ||
| sentry.server.config.ts | ||
| tsconfig.json | ||
| vitest-env.d.ts | ||
| vitest.config.ts | ||
| vitest.setup.ts | ||