refactor(form-editor): разбиение FormEditor.tsx (4975→337) — шаг 2.2 завершён

Шаг 2.2 (часть 4) плана production-готовности:
- 14 файлов в components/form-editor/ (контроллер, FieldCard, вкладки, диалоги)
- сверка 13/15 блоков байт-в-байт, расхождения объяснены
- warnings 566→542, check/build чисто, vitest 104/104

Итог 2.2: Chat 2696→639, TaskDetail 3278→804, Bots 3928→163, FormEditor 4975→337
This commit is contained in:
2026-09-08 08:57:55 +03:00
parent 95d03aeeff
commit 6e7270d2ee
15 changed files with 5581 additions and 4836 deletions

View File

@@ -378,3 +378,14 @@
- Что изменено: `client/src/pages/Bots.tsx` → 16 файлов в `client/src/components/bots/`: bots-types.ts (+zod-схемы), bots-utils.ts, CollapsibleSection, CreateBotUsersPicker, useBotsController.tsx (вся логика дословно, хуки 1:1), CreateBotDialog, BotListCard, BotSettingsTab (apiAccess/регенерация ключей), BotAiTab, BotWebhookTab, BotSubscriptionsTab, BotApiDocsCard, ServicesSection, JsPagesSection, TabModulesSection. В Bots.tsx — каркас композиции (публичный экспорт BotsContent сохранён — используется в Settings.tsx).
- Как проверялось: программная сверка — 28/28 сегментов дословно; пропсы типизированы через Pick<ReturnType<typeof useBotsController>>. Чеклист: выдача/регенерация API-ключей, zod-валидации, вкладки — дословно. check/lint/build чисто; vitest 104/104.
- Влияние на поиск/UX: нет.
---
## [2.2d] Разбиение FormEditor.tsx (4975 → 337 строк) — шаг 2.2 завершён
- Статус: ✅ done
- Зачем: см. 2.2a. БЕЗ смены поведения.
- Что изменено: `client/src/pages/FormEditor.tsx` → 14 файлов в `client/src/components/form-editor/`: types.ts, constants.ts, utils.ts, SortableWrappers, useFormEditorController.tsx (все хуки 1:1, 1440 строк), FieldCard (карточка поля: Гантт-роли, button-настройки, companyAutofill, contract-number, formula, document_template), MainTab, FieldsTab, StatusesTab, TransitionsTab (конструктор согласующих с resolveTableMode и обратной совместимостью), OfflineTab, LayoutTab (пресеты @preset), FormEditorDialogs. В FormEditor — композиция + шапка + Tabs.
- Как проверялось: построчная программная сверка — 13/15 блоков байт-в-байт, расхождения объяснены (export-префиксы, перенос типов/констант, фрагменты вместо leading-комментариев JSX, удаление 24 неиспользуемых импортов оригинала). Чеклист: bulkSaveFormFields, правила согласующих, пресеты, QR-toggle, условия полей — дословно. check/lint/build чисто (warnings 566→542); vitest 104/104.
- Влияние на поиск/UX: нет.
- Итог 2.2: Chat 2696→639, TaskDetail 3278→804, Bots 3928→163, FormEditor 4975→337.