- fixed detecting unsaved changes;

This commit is contained in:
Vitalii Kiiko
2024-11-18 13:50:47 +01:00
parent e5031006c6
commit 0534b7cd0a
5 changed files with 14 additions and 7 deletions

View File

@@ -78,6 +78,7 @@ const TopBarProfileMenu = ({ menuLeftRef }) => {
icon: 'pi pi-sign-out',
command: () => {
storeSet.main.doLogout();
window.location.reload();
},
enable: true
}

View File

@@ -26,6 +26,7 @@ const UnsavedChangesDetector = ({ getValuesFn }) => {
}
formData = wrap(formData).insert(['dates'], starDate, 0).value();
delete formData.startDate;
}
if (formData.endDate) {
let endDate;
@@ -38,6 +39,7 @@ const UnsavedChangesDetector = ({ getValuesFn }) => {
}
formData = wrap(formData).insert(['dates'], endDate, 1).value();
delete formData.endDate;
}
if (!isNil(formData.startTime)) {
if (!is(String, formData.startTime)) {
@@ -54,7 +56,7 @@ const UnsavedChangesDetector = ({ getValuesFn }) => {
const initial = storeGet.main.formInitialData();
const isEqual = equal(initial, formData);
// TODO
// debug
/*console.log('isEqual', isEqual,
initial, formData,
diff(initial, formData))*/

View File

@@ -27,7 +27,7 @@ import { storeSet } from '../../../../store';
import set404FromErrorResponse from '../../../../helpers/set404FromErrorResponse';
import getTimeParsedFromString from '../../../../helpers/getTimeParsedFromString';
const BandoEditFormStep1 = forwardRef(function ({ initialData, getFormErrors, status }, ref) {
const BandoEditFormStep1 = forwardRef(function ({ initialData, setInitialData, getFormErrors, status }, ref) {
const navigate = useNavigate();
const [aimedToOptions, setAimedToOptions] = useState([]);
const [faqOptions, setFaqOptions] = useState([]);
@@ -86,7 +86,6 @@ const BandoEditFormStep1 = forwardRef(function ({ initialData, getFormErrors, st
formData.startTime = tzAwareDate.toISOString().substring(11, 16);
}
}
if (!isNil(formData.endTime)) {
if (!is(String, formData.endTime)) {
const tzAwareDate = new TZDate(formData.endTime, 'Europe/Berlin');
@@ -120,6 +119,7 @@ const BandoEditFormStep1 = forwardRef(function ({ initialData, getFormErrors, st
navigate(`/bandi/${data.data.id}`);
} else {
setFormInitialData(data.data);
setInitialData(data.data);
}
}
}
@@ -202,6 +202,7 @@ const BandoEditFormStep1 = forwardRef(function ({ initialData, getFormErrors, st
}, [errors, isValid]);
useEffect(() => {
console.log('here1')
storeSet.main.formInitialData(initialData);
setFormInitialData(initialData);
}, [initialData]);

View File

@@ -24,7 +24,7 @@ import getTimeParsedFromString from '../../../../helpers/getTimeParsedFromString
import { mimeTypes } from '../../../../configData';
import { wrap } from 'object-path-immutable';
const BandoEditFormStep2 = forwardRef(function ({ initialData, getFormErrors, status }, ref) {
const BandoEditFormStep2 = forwardRef(function ({ initialData, setInitialData, getFormErrors, status }, ref) {
const navigate = useNavigate();
const [criteriaOptions, setCriteriaOptions] = useState([]);
const [checklistOptions, setChecklistOptions] = useState([]);
@@ -108,7 +108,7 @@ const BandoEditFormStep2 = forwardRef(function ({ initialData, getFormErrors, st
});
const newFormData = {...formInitialData, ...data.data};
setFormInitialData(newFormData);
storeSet.main.formInitialData(newFormData);
setInitialData(newFormData);
}
}
@@ -174,6 +174,7 @@ const BandoEditFormStep2 = forwardRef(function ({ initialData, getFormErrors, st
}, [errors, isValid]);
useEffect(() => {
console.log('here2')
storeSet.main.formInitialData(initialData);
setFormInitialData(initialData);
}, [initialData]);

View File

@@ -288,9 +288,11 @@ const BandoEdit = () => {
{!isEmpty(data)
? <>
{activeStep === 0
? <BandoEditFormStep1 initialData={data} ref={formRef} status={data.status}/> : null}
? <BandoEditFormStep1 initialData={data} setInitialData={setData} ref={formRef} status={data.status}/>
: null}
{activeStep === 1
? <BandoEditFormStep2 initialData={data} ref={formRef} status={data.status}/> : null}
? <BandoEditFormStep2 initialData={data} setInitialData={setData} ref={formRef} status={data.status}/>
: null}
<div className="appPageSection">
<h2>{__('Crea o modifica il Form compilabile dal Beneficiario', 'gepafin')}</h2>