- saving;

This commit is contained in:
Vitalii Kiiko
2025-01-09 12:52:52 +01:00
parent 3b7c8edb4c
commit 92aed03003

View File

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