ЦИТК-979 - Редактор запросов - исправлена ошибка сброса состояния диалога редактирования аргумента запроса при возникновении серверной ошибки
This commit is contained in:
parent
1530bfa3bf
commit
3df01a36c6
@ -19,24 +19,21 @@ import { DATA_TYPE } from "../../common"; //Общие константы ред
|
||||
|
||||
//Диалог добавления/исправления аргумента запроса
|
||||
const ArgIUDialog = ({ name = "", title = "", dataType = DATA_TYPE.NUMB, mandatory = 0, value = "", insert = true, onOk, onCancel }) => {
|
||||
//Собственное состояние - текущее состояние аргумента
|
||||
const [current, setCurrent] = useState({ value, dataType });
|
||||
//Собственное состояние - текущие значения полей аргумента запроса
|
||||
const [current, setCurrent] = useState({ name, title, dataType, mandatory, value });
|
||||
|
||||
//Нажатие на кнопку "Ok"
|
||||
const handleOk = values => onOk && onOk({ ...values });
|
||||
const handleOk = () => onOk && onOk(current);
|
||||
|
||||
//Нажатие на кнопку "Отмена"
|
||||
const handleCancel = () => onCancel && onCancel();
|
||||
|
||||
//При изменении значений в поле ввода
|
||||
const handleInputChange = (name, value) => {
|
||||
//Если поменяли тип данных - надо пересмотреть поля для ввода
|
||||
if (name === "dataType") {
|
||||
//Сохраним в состоянии новый тип данных и сбросим "отладочное значение", ведь оно зависит от типа данных (от этого состояния зависит свойство inputs, передаваемое в P8PDialog ниже)
|
||||
setCurrent({ dataType: value, value: "" });
|
||||
//Сохраним в состоянии новое значение, если сменили тип данных - сбросим "отладочное значение"
|
||||
setCurrent(pv => ({ ...pv, [name]: value, ...(name === "dataType" ? { value: "" } : {}) }));
|
||||
//Мы сами пересчитали форму, туда придут новые настройки элементов ввода через свойство inputs, не надо делать пересчет состояния внутри диалога
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
//Генерация содержимого
|
||||
@ -44,8 +41,8 @@ const ArgIUDialog = ({ name = "", title = "", dataType = DATA_TYPE.NUMB, mandato
|
||||
<P8PDialog
|
||||
title={`${insert === true ? TITLES.INSERT : TITLES.UPDATE} аргумента`}
|
||||
inputs={[
|
||||
{ name: "name", value: name, label: "Имя", disabled: insert != true },
|
||||
{ name: "title", value: title, label: "Приглашение" },
|
||||
{ name: "name", value: current.name, label: "Имя", disabled: insert != true },
|
||||
{ name: "title", value: current.title, label: "Приглашение" },
|
||||
{
|
||||
name: "dataType",
|
||||
value: current.dataType,
|
||||
@ -58,7 +55,7 @@ const ArgIUDialog = ({ name = "", title = "", dataType = DATA_TYPE.NUMB, mandato
|
||||
},
|
||||
{
|
||||
name: "mandatory",
|
||||
value: mandatory,
|
||||
value: current.mandatory,
|
||||
label: "Обязательный",
|
||||
list: [
|
||||
{ name: "Нет", value: 0 },
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user