From 0534b7cd0a0eaffd919931d3eb63905712c18ac2 Mon Sep 17 00:00:00 2001 From: Vitalii Kiiko Date: Mon, 18 Nov 2024 13:50:47 +0100 Subject: [PATCH] - fixed detecting unsaved changes; --- src/components/TopBarProfileMenu/index.js | 1 + src/components/UnsavedChangesDetector/index.js | 4 +++- src/pages/BandoEdit/components/BandoEditFormStep1/index.js | 5 +++-- src/pages/BandoEdit/components/BandoEditFormStep2/index.js | 5 +++-- src/pages/BandoEdit/index.js | 6 ++++-- 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/components/TopBarProfileMenu/index.js b/src/components/TopBarProfileMenu/index.js index 4288572..2c3c729 100644 --- a/src/components/TopBarProfileMenu/index.js +++ b/src/components/TopBarProfileMenu/index.js @@ -78,6 +78,7 @@ const TopBarProfileMenu = ({ menuLeftRef }) => { icon: 'pi pi-sign-out', command: () => { storeSet.main.doLogout(); + window.location.reload(); }, enable: true } diff --git a/src/components/UnsavedChangesDetector/index.js b/src/components/UnsavedChangesDetector/index.js index 86c21fd..fefef9d 100644 --- a/src/components/UnsavedChangesDetector/index.js +++ b/src/components/UnsavedChangesDetector/index.js @@ -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))*/ diff --git a/src/pages/BandoEdit/components/BandoEditFormStep1/index.js b/src/pages/BandoEdit/components/BandoEditFormStep1/index.js index 0baca40..07f5ad5 100644 --- a/src/pages/BandoEdit/components/BandoEditFormStep1/index.js +++ b/src/pages/BandoEdit/components/BandoEditFormStep1/index.js @@ -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]); diff --git a/src/pages/BandoEdit/components/BandoEditFormStep2/index.js b/src/pages/BandoEdit/components/BandoEditFormStep2/index.js index 5b8e098..791c2c1 100644 --- a/src/pages/BandoEdit/components/BandoEditFormStep2/index.js +++ b/src/pages/BandoEdit/components/BandoEditFormStep2/index.js @@ -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]); diff --git a/src/pages/BandoEdit/index.js b/src/pages/BandoEdit/index.js index b7f3ee6..f9b0951 100644 --- a/src/pages/BandoEdit/index.js +++ b/src/pages/BandoEdit/index.js @@ -288,9 +288,11 @@ const BandoEdit = () => { {!isEmpty(data) ? <> {activeStep === 0 - ? : null} + ? + : null} {activeStep === 1 - ? : null} + ? + : null}

{__('Crea o modifica il Form compilabile dal Beneficiario', 'gepafin')}