- saving;
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
import React, { useEffect, useState, useCallback, useRef } from 'react';
|
import React, { useEffect, useState, useCallback, useRef } from 'react';
|
||||||
import { __, sprintf } from '@wordpress/i18n';
|
import { __, sprintf } from '@wordpress/i18n';
|
||||||
import { useNavigate, useParams } from 'react-router-dom';
|
import { useNavigate, useParams } from 'react-router-dom';
|
||||||
import { isEmpty, head, pathOr } from 'ramda';
|
import { isEmpty, head, pathOr, isNil } from 'ramda';
|
||||||
|
|
||||||
// store
|
// store
|
||||||
import { storeGet, storeSet, useStore } from '../../store';
|
import { storeGet, storeSet, useStore } from '../../store';
|
||||||
@@ -27,13 +27,13 @@ const BandoFlowEdit = () => {
|
|||||||
const flowData = useStore().main.flowData();
|
const flowData = useStore().main.flowData();
|
||||||
const flowEdges = useStore().main.flowEdges();
|
const flowEdges = useStore().main.flowEdges();
|
||||||
const [formOptions, setFormOptions] = useState([]);
|
const [formOptions, setFormOptions] = useState([]);
|
||||||
const [initialForm, setInitialForm] = useState(0);
|
const [initialForm, setInitialForm] = useState(null);
|
||||||
const [chosenMainFieldOptions, setChosenMainFieldOptions] = useState([]);
|
const [chosenMainFieldOptions, setChosenMainFieldOptions] = useState([]);
|
||||||
const [chosenMainField, setChosenMainField] = useState('');
|
const [chosenMainField, setChosenMainField] = useState('');
|
||||||
const [mainFieldSuboptions, setMainFieldSubOptions] = useState([]);
|
const [mainFieldSuboptions, setMainFieldSubOptions] = useState([]);
|
||||||
const [bandoStatus, setBandoStatus] = useState('');
|
const [bandoStatus, setBandoStatus] = useState('');
|
||||||
const [isFlowAllowed, setIsFlowAllowed] = useState(true);
|
const [isFlowAllowed, setIsFlowAllowed] = useState(true);
|
||||||
const [finalForm, setFinalForm] = useState(0);
|
const [finalForm, setFinalForm] = useState(null);
|
||||||
const flowMsgs = useRef(null);
|
const flowMsgs = useRef(null);
|
||||||
const toast = useRef(null);
|
const toast = useRef(null);
|
||||||
const [lines, setLines] = useState([]);
|
const [lines, setLines] = useState([]);
|
||||||
@@ -70,7 +70,7 @@ const BandoFlowEdit = () => {
|
|||||||
}
|
}
|
||||||
storeSet.main.flowData([]);
|
storeSet.main.flowData([]);
|
||||||
storeSet.main.flowEdges([]);
|
storeSet.main.flowEdges([]);
|
||||||
setInitialForm(0);
|
setInitialForm(null);
|
||||||
setChosenMainFieldOptions([]);
|
setChosenMainFieldOptions([]);
|
||||||
setChosenMainField('');
|
setChosenMainField('');
|
||||||
setIsFlowAllowed(false);
|
setIsFlowAllowed(false);
|
||||||
@@ -80,6 +80,7 @@ const BandoFlowEdit = () => {
|
|||||||
|
|
||||||
const updateInitialForm = (value) => {
|
const updateInitialForm = (value) => {
|
||||||
if (value !== finalForm) {
|
if (value !== finalForm) {
|
||||||
|
console.log('setInitialForm1')
|
||||||
setInitialForm(value);
|
setInitialForm(value);
|
||||||
if (forms.length === 2) {
|
if (forms.length === 2) {
|
||||||
const finalForm = head(forms.filter(o => o.id !== value));
|
const finalForm = head(forms.filter(o => o.id !== value));
|
||||||
@@ -191,6 +192,7 @@ const BandoFlowEdit = () => {
|
|||||||
if (data.status === 'SUCCESS' && data.data) {
|
if (data.status === 'SUCCESS' && data.data) {
|
||||||
storeSet.main.flowData(data.data.flowData);
|
storeSet.main.flowData(data.data.flowData);
|
||||||
storeSet.main.flowEdges(data.data.flowEdges);
|
storeSet.main.flowEdges(data.data.flowEdges);
|
||||||
|
console.log('setInitialForm2')
|
||||||
setInitialForm(data.data.initialForm);
|
setInitialForm(data.data.initialForm);
|
||||||
setFinalForm(data.data.finalForm);
|
setFinalForm(data.data.finalForm);
|
||||||
setBandoStatus(data.data.callStatus);
|
setBandoStatus(data.data.callStatus);
|
||||||
@@ -210,7 +212,7 @@ const BandoFlowEdit = () => {
|
|||||||
const field = form ? head(form.content.filter(o => o.id === chosenFieldItem.chosenField)) : null;
|
const field = form ? head(form.content.filter(o => o.id === chosenFieldItem.chosenField)) : null;
|
||||||
if (field) {
|
if (field) {
|
||||||
const options = head(field.settings.filter(o => o.name === 'options'));
|
const options = head(field.settings.filter(o => o.name === 'options'));
|
||||||
console.log('suboptions1', options.value)
|
console.log('suboptions1', options.value, data.data.initialForm)
|
||||||
setMainFieldSubOptions(options.value);
|
setMainFieldSubOptions(options.value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -272,6 +274,38 @@ const BandoFlowEdit = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const isAsyncRequest = storeGet.main.isAsyncRequest();
|
||||||
|
if ('PUBLISH' === bandoStatus || isAsyncRequest || isNil(initialForm)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
storeSet.main.flowData([]);
|
||||||
|
setChosenMainField('');
|
||||||
|
console.log('suboptions3', [], initialForm)
|
||||||
|
setMainFieldSubOptions([]);
|
||||||
|
setChosenMainFieldOptions([]);
|
||||||
|
const flowForms = storeGet.main.flowForms();
|
||||||
|
const form = head(flowForms.filter(o => String(o.id) === String(initialForm)))
|
||||||
|
const relevantFields = form
|
||||||
|
? form.content
|
||||||
|
.filter(o => ['radio', 'select'].includes(o.name))
|
||||||
|
.map(o => {
|
||||||
|
const label = head(o.settings.filter(o => o.name === 'label'));
|
||||||
|
return { value: o.id, label: label ? label.value : o.label };
|
||||||
|
})
|
||||||
|
: [];
|
||||||
|
setChosenMainFieldOptions([
|
||||||
|
{ label: isEmpty(relevantFields) ? __('Nessun scelta', 'gepafin') : '', value: '' },
|
||||||
|
...relevantFields]
|
||||||
|
);
|
||||||
|
|
||||||
|
if (flowForms.length === 2) {
|
||||||
|
setIsFlowAllowed(true)
|
||||||
|
}
|
||||||
|
|
||||||
|
buildFlowEdges();
|
||||||
|
}, [initialForm]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const isAsyncRequest = storeGet.main.isAsyncRequest();
|
const isAsyncRequest = storeGet.main.isAsyncRequest();
|
||||||
if (isAsyncRequest) {
|
if (isAsyncRequest) {
|
||||||
@@ -296,7 +330,7 @@ const BandoFlowEdit = () => {
|
|||||||
{ label: __('Nessun scelta', 'gepafin'), name: '' },
|
{ label: __('Nessun scelta', 'gepafin'), name: '' },
|
||||||
...options.value
|
...options.value
|
||||||
]
|
]
|
||||||
console.log('suboptions2', suboptions)
|
console.log('suboptions2', suboptions, initialForm)
|
||||||
setMainFieldSubOptions(suboptions);
|
setMainFieldSubOptions(suboptions);
|
||||||
const data = {
|
const data = {
|
||||||
formId: parseInt(initialForm),
|
formId: parseInt(initialForm),
|
||||||
@@ -335,39 +369,7 @@ const BandoFlowEdit = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const isAsyncRequest = storeGet.main.isAsyncRequest();
|
const isAsyncRequest = storeGet.main.isAsyncRequest();
|
||||||
if ('PUBLISH' === bandoStatus || isAsyncRequest) {
|
if (isAsyncRequest || isNil(finalForm)) {
|
||||||
return;
|
|
||||||
}
|
|
||||||
storeSet.main.flowData([]);
|
|
||||||
setChosenMainField('');
|
|
||||||
console.log('suboptions3', [], initialForm)
|
|
||||||
setMainFieldSubOptions([]);
|
|
||||||
setChosenMainFieldOptions([]);
|
|
||||||
const flowForms = storeGet.main.flowForms();
|
|
||||||
const form = head(flowForms.filter(o => String(o.id) === String(initialForm)))
|
|
||||||
const relevantFields = form
|
|
||||||
? form.content
|
|
||||||
.filter(o => ['radio', 'select'].includes(o.name))
|
|
||||||
.map(o => {
|
|
||||||
const label = head(o.settings.filter(o => o.name === 'label'));
|
|
||||||
return { value: o.id, label: label ? label.value : o.label };
|
|
||||||
})
|
|
||||||
: [];
|
|
||||||
setChosenMainFieldOptions([
|
|
||||||
{ label: isEmpty(relevantFields) ? __('Nessun scelta', 'gepafin') : '', value: '' },
|
|
||||||
...relevantFields]
|
|
||||||
);
|
|
||||||
|
|
||||||
if (flowForms.length === 2) {
|
|
||||||
setIsFlowAllowed(true)
|
|
||||||
}
|
|
||||||
|
|
||||||
buildFlowEdges();
|
|
||||||
}, [initialForm]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
const isAsyncRequest = storeGet.main.isAsyncRequest();
|
|
||||||
if (isAsyncRequest) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ('PUBLISH' === bandoStatus) {
|
if ('PUBLISH' === bandoStatus) {
|
||||||
|
|||||||
Reference in New Issue
Block a user