import React, { useState, useEffect, useRef } from 'react'; import { __, sprintf } from '@wordpress/i18n'; import { useNavigate, useParams } from 'react-router-dom'; import { is, isEmpty } from 'ramda'; // store import { storeSet, useStore } from '../../store'; // tools import getNumberWithCurrency from '../../helpers/getNumberWithCurrency'; import getDateFromISOstring from '../../helpers/getDateFromISOstring'; // components import { Skeleton } from 'primereact/skeleton'; import { Accordion } from 'primereact/accordion'; import { AccordionTab } from 'primereact/accordion'; import { InputTextarea } from 'primereact/inputtextarea'; import { Button } from 'primereact/button'; import BandoService from '../../service/bando-service'; import { Messages } from 'primereact/messages'; import set404FromErrorResponse from '../../helpers/set404FromErrorResponse'; const BandoView = () => { const isAsyncRequest = useStore().main.isAsyncRequest(); const { id } = useParams(); const navigate = useNavigate(); const [data, setData] = useState({}); const [newQuestion, setNewQuestion] = useState(''); const bandoMsgs = useRef(null); const closePreview = () => { navigate(`/tenders/${id}`); } const getCallback = (data) => { if (data.status === 'SUCCESS') { setData(getFormattedBandiData(data.data)); } storeSet.main.unsetAsyncRequest(); } const errGetCallback = (data) => { if (bandoMsgs.current && data.message) { bandoMsgs.current.show([ { sticky: true, severity: 'error', summary: '', detail: data.message, closable: true } ]); } set404FromErrorResponse(data); storeSet.main.unsetAsyncRequest(); } const getFormattedBandiData = (data) => { data.dates = data.dates.map(v => is(String, v) ? new Date(v) : (v ? v : '')); return data; }; useEffect(() => { const parsed = parseInt(id) const bandoId = !isNaN(parsed) ? parsed : 0; BandoService.getBando(bandoId, getCallback, errGetCallback); }, [id]); return (
{__('Data:', 'gepafin')} {getDateFromISOstring(data.createdDate)}
{data.descriptionShort}
{__('Importo totale', 'gepafin')} {getNumberWithCurrency(data.amount)}
{__('Importo massimo per progetto', 'gepafin')} {getNumberWithCurrency(data.amountMax)}
{__('Data apertura', 'gepafin')} {getDateFromISOstring(data.dates[0])}
{__('Data chiusura', 'gepafin')} {getDateFromISOstring(data.dates[1])}
{data.descriptionLong}
{data.documentationRequested}
{o.response}
Email: bandi@gepafin.it
Telefono: +39 075 123 4567