From 509eb05c0bab9e810b4e43ca319c8602344adf6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=BB=D1=8C=D1=8F=D1=81=20=D0=A1=D1=83=D0=BB=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2?= Date: Thu, 16 Jul 2026 15:21:50 +0300 Subject: [PATCH] =?UTF-8?q?fix(contract-number):=20input=20=D1=88=D0=B8?= =?UTF-8?q?=D1=84=D1=80=D0=B0=20=D0=B7=D0=B0=D0=BA=D0=B0=D0=B7=D1=87=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=81=D0=BD=D0=BE=D0=B2=D0=B0=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80=D1=83=D0=B5=D0=BC=D1=8B?= =?UTF-8?q?=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Убрано локальное состояние customerValue, теперь значение берётся напрямую из parsed.value - Убран лишний useEffect, который мог сбрасывать ввод при глобальном редактировании - Состояние mode продолжает синхронизироваться с value prop --- client/src/components/ContractNumberField.tsx | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/client/src/components/ContractNumberField.tsx b/client/src/components/ContractNumberField.tsx index 70d8cd3..9c0e492 100644 --- a/client/src/components/ContractNumberField.tsx +++ b/client/src/components/ContractNumberField.tsx @@ -60,23 +60,17 @@ export default function ContractNumberField({ }: ContractNumberFieldProps) { const parsed = parseValue(value); const [mode, setMode] = useState<'mine' | 'customer'>(parsed.mode); - const [customerValue, setCustomerValue] = useState(parsed.mode === 'customer' ? parsed.value : ''); + const customerValue = parsed.mode === 'customer' ? parsed.value : ''; const [preview, setPreview] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); - // Синхронизируем локальное состояние с value prop, чтобы при повторном открытии - // глобального редактирования mode и customerValue соответствовали сохранённому значению. + // Синхронизируем локальное состояние mode с value prop, чтобы при повторном открытии + // глобального редактирования переключатель соответствовал сохранённому значению. useEffect(() => { setMode(parsed.mode); }, [parsed.mode]); - useEffect(() => { - if (parsed.mode === 'customer') { - setCustomerValue(parsed.value); - } - }, [parsed.mode, parsed.value]); - const legalEntityFormId = config?.legalEntityFormId; const legalEntityTaskId = parsed.legalEntityTaskId; @@ -125,12 +119,11 @@ export default function ContractNumberField({ if (newMode === 'mine') { onChange({ mode: 'mine', value: '', legalEntityTaskId: parsed.legalEntityTaskId }); } else { - onChange({ mode: 'customer', value: customerValue, legalEntityTaskId: parsed.legalEntityTaskId }); + onChange({ mode: 'customer', value: parsed.value || '', legalEntityTaskId: parsed.legalEntityTaskId }); } }; const handleCustomerChange = (val: string) => { - setCustomerValue(val); onChange({ mode: 'customer', value: val, legalEntityTaskId: parsed.legalEntityTaskId }); };