Production fixes: n8n workflow auto-restart, user-friendly messages, fixed navigation buttons
This commit is contained in:
@@ -2,15 +2,14 @@ import { useState, useMemo, useCallback, useEffect, useRef } from 'react';
|
||||
import { Steps, Card, message, Row, Col, Space } from 'antd';
|
||||
import Step1Phone from '../components/form/Step1Phone';
|
||||
import StepDescription from '../components/form/StepDescription';
|
||||
import Step1Policy from '../components/form/Step1Policy';
|
||||
// Step1Policy убран - старый ERV флоу
|
||||
import StepDraftSelection from '../components/form/StepDraftSelection';
|
||||
import StepWizardPlan from '../components/form/StepWizardPlan';
|
||||
import StepClaimConfirmation from '../components/form/StepClaimConfirmation';
|
||||
import Step2EventType from '../components/form/Step2EventType';
|
||||
import StepDocumentUpload from '../components/form/StepDocumentUpload';
|
||||
// Step2EventType, StepDocumentUpload убраны - старый ERV флоу
|
||||
import Step3Payment from '../components/form/Step3Payment';
|
||||
import DebugPanel from '../components/DebugPanel';
|
||||
import { getDocumentsForEventType } from '../constants/documentConfigs';
|
||||
// getDocumentsForEventType убран - старый ERV флоу
|
||||
import './ClaimForm.css';
|
||||
|
||||
// Используем относительные пути - Vite proxy перенаправит на backend
|
||||
@@ -244,9 +243,7 @@ export default function ClaimForm() {
|
||||
}, [formData.showClaimConfirmation, formData.claimPlanData]);
|
||||
|
||||
|
||||
// Динамически определяем список шагов на основе выбранного eventType
|
||||
const documentConfigs = formData.eventType ? getDocumentsForEventType(formData.eventType) : [];
|
||||
const totalDocumentSteps = documentConfigs.length;
|
||||
// Старый ERV флоу убран - documentConfigs больше не нужен
|
||||
|
||||
const addDebugEvent = (type: string, status: string, message: string, data?: any) => {
|
||||
const event = {
|
||||
@@ -1206,12 +1203,7 @@ export default function ClaimForm() {
|
||||
<StepWizardPlan
|
||||
formData={formData}
|
||||
updateFormData={updateFormData}
|
||||
onPrev={() => {
|
||||
// Возвращаемся к списку заявок
|
||||
setShowDraftSelection(true);
|
||||
setSelectedDraftId(null);
|
||||
setCurrentStep(0);
|
||||
}}
|
||||
onPrev={prevStep}
|
||||
onNext={nextStep}
|
||||
addDebugEvent={addDebugEvent}
|
||||
/>
|
||||
@@ -1235,63 +1227,6 @@ export default function ClaimForm() {
|
||||
});
|
||||
}
|
||||
|
||||
// Шаги для СТАРОГО флоу (страхование ERV) — НЕ показываем для нового флоу защиты прав
|
||||
const isNewClaimFlow = formData.documents_required && formData.documents_required.length > 0;
|
||||
|
||||
if (!isNewClaimFlow) {
|
||||
// Шаг 3: Policy (только для старого флоу)
|
||||
stepsArray.push({
|
||||
title: 'Проверка полиса',
|
||||
description: 'Полис ERV',
|
||||
content: (
|
||||
<Step1Policy
|
||||
formData={{ ...formData, session_id: sessionIdRef.current }}
|
||||
updateFormData={updateFormData}
|
||||
onNext={nextStep}
|
||||
addDebugEvent={addDebugEvent}
|
||||
/>
|
||||
),
|
||||
});
|
||||
|
||||
// Шаг 4: Event Type Selection (только для старого флоу)
|
||||
stepsArray.push({
|
||||
title: 'Тип события',
|
||||
description: 'Выбор случая',
|
||||
content: (
|
||||
<Step2EventType
|
||||
formData={formData}
|
||||
updateFormData={updateFormData}
|
||||
onNext={nextStep}
|
||||
onPrev={prevStep}
|
||||
addDebugEvent={addDebugEvent}
|
||||
/>
|
||||
),
|
||||
});
|
||||
}
|
||||
|
||||
// Шаги Document Upload (только для старого флоу — если выбран eventType)
|
||||
if (!isNewClaimFlow && formData.eventType && documentConfigs.length > 0) {
|
||||
documentConfigs.forEach((docConfig, index) => {
|
||||
stepsArray.push({
|
||||
title: `Документ ${index + 1}`,
|
||||
description: docConfig.name,
|
||||
content: (
|
||||
<StepDocumentUpload
|
||||
key={`doc-${docConfig.file_type}`}
|
||||
documentConfig={docConfig}
|
||||
formData={formData}
|
||||
updateFormData={updateFormData}
|
||||
onNext={nextStep}
|
||||
onPrev={prevStep}
|
||||
isLastDocument={index === documentConfigs.length - 1}
|
||||
currentDocNumber={index + 1}
|
||||
totalDocs={documentConfigs.length}
|
||||
/>
|
||||
),
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Последний шаг: Payment (всегда)
|
||||
stepsArray.push({
|
||||
title: 'Заявление',
|
||||
@@ -1310,7 +1245,7 @@ export default function ClaimForm() {
|
||||
});
|
||||
|
||||
return stepsArray;
|
||||
}, [formData, documentConfigs, isPhoneVerified, nextStep, prevStep, updateFormData, handleSubmit, setIsPhoneVerified, addDebugEvent, showDraftSelection, selectedDraftId, hasDrafts, handleSelectDraft, handleNewClaim, checkDrafts]);
|
||||
}, [formData, isPhoneVerified, nextStep, prevStep, updateFormData, handleSubmit, setIsPhoneVerified, addDebugEvent, showDraftSelection, selectedDraftId, hasDrafts, handleSelectDraft, handleNewClaim, checkDrafts]);
|
||||
|
||||
const handleReset = () => {
|
||||
setIsSubmitted(false);
|
||||
@@ -1364,8 +1299,8 @@ export default function ClaimForm() {
|
||||
return (
|
||||
<div className="claim-form-container" style={{ padding: '20px', background: '#ffffff' }}>
|
||||
<Row gutter={16}>
|
||||
{/* Левая часть - Форма */}
|
||||
<Col xs={24} lg={14}>
|
||||
{/* Левая часть - Форма (в проде на всю ширину, в деве 14 из 24) */}
|
||||
<Col xs={24} lg={process.env.NODE_ENV === 'development' ? 14 : 24}>
|
||||
<Card
|
||||
title="Подать обращение о защите прав потребителя"
|
||||
className="claim-form-card"
|
||||
@@ -1439,10 +1374,12 @@ export default function ClaimForm() {
|
||||
</Card>
|
||||
</Col>
|
||||
|
||||
{/* Правая часть - Debug консоль */}
|
||||
<Col xs={24} lg={10}>
|
||||
<DebugPanel events={debugEvents} formData={formData} />
|
||||
</Col>
|
||||
{/* Правая часть - Debug консоль (только в dev режиме) */}
|
||||
{process.env.NODE_ENV === 'development' && (
|
||||
<Col xs={24} lg={10}>
|
||||
<DebugPanel events={debugEvents} formData={formData} />
|
||||
</Col>
|
||||
)}
|
||||
</Row>
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user