diff --git a/src/helpers/isDateTimeInPast.js b/src/helpers/isDateTimeInPast.js new file mode 100644 index 0000000..7a2223c --- /dev/null +++ b/src/helpers/isDateTimeInPast.js @@ -0,0 +1,10 @@ +const isDateTimeInPast = (dateStr, timeStr) => { + const [hours, minutes, seconds = 0] = timeStr.split(':').map(Number); + const dateTime = new Date(dateStr); + dateTime.setHours(hours, minutes, seconds); + const now = new Date(); + + return dateTime < now; +} + +export default isDateTimeInPast; \ No newline at end of file diff --git a/src/layouts/DefaultLayout/components/AppTopbar/index.js b/src/layouts/DefaultLayout/components/AppTopbar/index.js index 8bb75b4..8aae5f8 100644 --- a/src/layouts/DefaultLayout/components/AppTopbar/index.js +++ b/src/layouts/DefaultLayout/components/AppTopbar/index.js @@ -1,13 +1,9 @@ import React, { useRef } from 'react'; -import { __ } from '@wordpress/i18n'; // components import { Toolbar } from 'primereact/toolbar'; import { Link } from 'react-router-dom'; import LogoIcon from '../../../../icons/LogoIcon'; -import { IconField } from 'primereact/iconfield'; -import { InputIcon } from 'primereact/inputicon'; -import { InputText } from 'primereact/inputtext'; import { Button } from 'primereact/button'; import TopBarProfileMenu from '../../../../components/TopBarProfileMenu'; import NotificationsSidebar from '../../../../components/NotificationsSidebar'; @@ -20,12 +16,12 @@ const AppTopbar = () => { ; const endContent =
- + {/* - + */} - + {/**/} {/* */} diff --git a/src/pages/BandiBeneficiario/components/AllBandiAccordion/index.js b/src/pages/BandiBeneficiario/components/AllBandiAccordion/index.js index 89882e5..13bddd3 100644 --- a/src/pages/BandiBeneficiario/components/AllBandiAccordion/index.js +++ b/src/pages/BandiBeneficiario/components/AllBandiAccordion/index.js @@ -29,6 +29,7 @@ import { Button } from 'primereact/button'; // i18n import translationStrings from '../../../../translationStringsForComponents'; +import isDateTimeInPast from '../../../../helpers/isDateTimeInPast'; const REACT_APP_HUB_ID = process.env.REACT_APP_HUB_ID; @@ -180,17 +181,20 @@ const AllBandiAccordion = ({ showOnlyPreferred = false }) => { } const rowExpansionTemplate = (data) => { + const isCallExpired = isDateTimeInPast(data.dates[1], data.endTime); return (
{renderHtmlContent(data.descriptionShort)}

{__('Scadenza', 'gepafin')}: {getDateFromISOstring(data.dates[1])}

- {!isEmpty(chosenCompanyId) && chosenCompanyId !== 0 && (!data.confidi + {!isCallExpired && !isEmpty(chosenCompanyId) && chosenCompanyId !== 0 && (!data.confidi || (data.confidi && data.id === 6 && REACT_APP_HUB_ID === 'p4lk3bcx1RStqTaIVVbXs')) ? : null} - {!isEmpty(chosenCompanyId) && chosenCompanyId !== 0 && data.confidi - && (data.id !== 6 || (data.id === 6 && REACT_APP_HUB_ID !== 'p4lk3bcx1RStqTaIVVbXs')) + {isCallExpired + ?

{__('È scaduto', 'gepafin')}

: null} + {isCallExpired || (!isEmpty(chosenCompanyId) && chosenCompanyId !== 0 && data.confidi + && (data.id !== 6 || (data.id === 6 && REACT_APP_HUB_ID !== 'p4lk3bcx1RStqTaIVVbXs'))) ? : null} diff --git a/src/pages/BandoApplication/index.js b/src/pages/BandoApplication/index.js index d6d324b..0e5846d 100644 --- a/src/pages/BandoApplication/index.js +++ b/src/pages/BandoApplication/index.js @@ -40,10 +40,12 @@ import FileuploadApplicationSignedPdf from '../../components/FileuploadApplicati import { defaultMaxFileSize } from '../../configData'; import formatDateString from '../../helpers/formatDateString'; +import isDateTimeInPast from '../../helpers/isDateTimeInPast'; const BandoApplication = () => { const chosenCompanyId = useStore().main.chosenCompanyId(); const { id } = useParams(); + const [isExpired, setIsExpired] = useState(false); const [formData, setFormData] = useState([]); const [formInitialData, setFormInitialData] = useState(null); const [bandoTitle, setBandoTitle] = useState(''); @@ -297,6 +299,8 @@ const BandoApplication = () => { //setCompletedSteps(data.data.completedSteps); setApplicationStatus(data.data.applicationStatus) setActiveStep(data.data.currentStep); + const isCallExpired = isDateTimeInPast(data.data.callEndDate, data.data.callEndTime); + setIsExpired(isCallExpired); const chosenCompanyId = data.data.companyId; const companies = storeGet.main.companies(); @@ -396,27 +400,27 @@ const BandoApplication = () => { {activeStep > 1 && activeStep <= totalSteps ?
: null} + {isExpired + ?
+ {__('Il bando è scaduto!', 'gepafin')} +
: null} + {'DRAFT' === applicationStatus ?
{actionBtns} diff --git a/src/pages/BandoViewBeneficiario/index.js b/src/pages/BandoViewBeneficiario/index.js index c72ac95..f6bea38 100644 --- a/src/pages/BandoViewBeneficiario/index.js +++ b/src/pages/BandoViewBeneficiario/index.js @@ -29,6 +29,7 @@ import { Toast } from 'primereact/toast'; import { Editor } from 'primereact/editor'; import { Dialog } from 'primereact/dialog'; import PreferredBandoService from '../../service/preferred-bando-service'; +import isDateTimeInPast from '../../helpers/isDateTimeInPast'; const REACT_APP_HUB_ID = process.env.REACT_APP_HUB_ID; @@ -38,6 +39,7 @@ const BandoViewBeneficiario = () => { const { id } = useParams(); const navigate = useNavigate(); const [data, setData] = useState({}); + const [isExpired, setIsExpired] = useState(false); const [newQuestion, setNewQuestion] = useState(''); const [applicationObj, setApplicationObj] = useState(true); const [isVisibleConfidiPopup, setIsVisibleConfidiPopup] = useState(false); @@ -327,6 +329,13 @@ const BandoViewBeneficiario = () => { } }, [id, chosenCompanyId]); + useEffect(() => { + if (data.dates) { + const isCallExpired = isDateTimeInPast(data.dates[1], data.endTime); + setIsExpired(isCallExpired); + } + }, [data]); + return (
{!isAsyncRequest && !isEmpty(data) @@ -472,6 +481,7 @@ const BandoViewBeneficiario = () => {
} @@ -506,18 +516,20 @@ const BandoViewBeneficiario = () => { icon="pi pi-download" iconPos="right"/>*/}