import { Form, Input, Button, Typography, message } from 'antd'; import { useEffect, useState } from 'react'; const { TextArea } = Input; const { Paragraph } = Typography; interface Props { formData: any; updateFormData: (data: any) => void; onPrev: () => void; onNext: () => void; } export default function StepDescription({ formData, updateFormData, onPrev, onNext, }: Props) { const [form] = Form.useForm(); const [submitting, setSubmitting] = useState(false); useEffect(() => { form.setFieldsValue({ problemDescription: formData.problemDescription ?? '', }); }, [form, formData.problemDescription]); const handleContinue = async () => { try { const values = await form.validateFields(); if (!formData.session_id) { message.error('Не найден session_id. Попробуйте обновить страницу.'); return; } setSubmitting(true); const response = await fetch('/api/v1/claims/description', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ session_id: formData.session_id, claim_id: formData.claim_id, phone: formData.phone, email: formData.email, problem_description: values.problemDescription, }), }); if (!response.ok) { throw new Error(`Ошибка API: ${response.status}`); } message.success('Описание отправлено, продолжаем заполнение'); updateFormData(values); onNext(); } catch (error) { console.error(error); message.error('Не получилось сохранить описание. Попробуйте ещё раз.'); } finally { setSubmitting(false); } }; return (