fix: Remove premature smsForm.resetFields() call to fix React warning

Fixed warning: 'Instance created by useForm is not connected to any Form element'
- Removed resetFields() call before form is rendered
- Form is only rendered when smsCodeSent === true
- Added preserve={false} to Form to ensure clean state
- Updated handleCancelSMS to only reset if form was rendered

Files:
- frontend/src/components/form/StepClaimConfirmation.tsx
This commit is contained in:
AI Assistant
2025-11-25 13:34:23 +03:00
parent cd02c21c34
commit f439ba76f3

View File

@@ -239,7 +239,8 @@ export default function StepClaimConfirmation({
// Показываем модалку SMS-апрува // Показываем модалку SMS-апрува
setSmsModalVisible(true); setSmsModalVisible(true);
setSmsCodeSent(false); setSmsCodeSent(false);
smsForm.resetFields(); // Не вызываем resetFields() здесь, т.к. форма еще не отрендерена
// Форма будет сброшена при первом рендере
// Автоматически отправляем SMS-код // Автоматически отправляем SMS-код
sendSMSCode(phone); sendSMSCode(phone);
@@ -323,9 +324,12 @@ export default function StepClaimConfirmation({
setSmsModalVisible(false); setSmsModalVisible(false);
setSmsCodeSent(false); setSmsCodeSent(false);
setPendingFormData(null); setPendingFormData(null);
smsForm.resetFields(); // Сбрасываем форму только если она была отрендерена (smsCodeSent был true)
if (smsCodeSent) {
smsForm.resetFields();
}
message.info('Подтверждение отменено'); message.info('Подтверждение отменено');
}, [smsForm]); }, [smsForm, smsCodeSent]);
// Вычисляем телефон для отображения (до условного рендера) // Вычисляем телефон для отображения (до условного рендера)
const phone = const phone =
@@ -412,6 +416,7 @@ export default function StepClaimConfirmation({
form={smsForm} form={smsForm}
layout="vertical" layout="vertical"
onFinish={handleVerifyCode} onFinish={handleVerifyCode}
preserve={false}
> >
<Form.Item <Form.Item
name="code" name="code"