- 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 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) {