fix(contract-number): input шифра заказчика снова редактируемый
- Убрано локальное состояние customerValue, теперь значение берётся напрямую из parsed.value - Убран лишний useEffect, который мог сбрасывать ввод при глобальном редактировании - Состояние mode продолжает синхронизироваться с value prop
This commit is contained in:
@@ -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<string>('');
|
||||
const [loading, setLoading] = useState(false);
|
||||
const [error, setError] = useState<string>('');
|
||||
|
||||
// Синхронизируем локальное состояние с 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 });
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user