import React, { useState, useEffect, useRef } from 'react'; import { __ } from '@wordpress/i18n'; import { useParams } from 'react-router-dom'; import { is, isEmpty, isNil } from 'ramda'; import 'quill/dist/quill.core.css'; // store import { storeSet, useStoreValue } 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'; import renderHtmlContent from '../../helpers/renderHtmlContent'; const REACT_APP_HUB_ID = process.env.REACT_APP_HUB_ID; const BandoViewPreInstructor = () => { const isAsyncRequest = useStoreValue('isAsyncRequest'); const antiMoneyLaundryCalls = useStoreValue('antiMoneyLaundryCalls'); const { id } = useParams(); const [data, setData] = useState({}); const [newQuestion, setNewQuestion] = useState(''); const bandoMsgs = useRef(null); const getCallback = (data) => { if (data.status === 'SUCCESS') { setData(getFormattedBandiData(data.data)); } storeSet('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('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 (
{!isAsyncRequest && !isEmpty(data) ?

{data.name}

{__('Data:', 'gepafin')} {getDateFromISOstring(data.createdDate)}

: <> }
{!isAsyncRequest && !isEmpty(data) ?
{!isEmpty(data.images) ? {data.name}/ : null}

{__('Descrizione breve', 'gepafin')}

{renderHtmlContent(data.descriptionShort)}
{REACT_APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE' && antiMoneyLaundryCalls.includes(data.id) ? null :

{__('Importo totale', 'gepafin')} {getNumberWithCurrency(data.amount)}

{__('Importo minimo per progetto', 'gepafin')} {getNumberWithCurrency(data.amountMin)}

{__('Importo massimo per progetto', 'gepafin')} {getNumberWithCurrency(data.amountMax)}

{__('Data apertura', 'gepafin')} {getDateFromISOstring(data.dates[0])} {data.startTime}

{__('Data chiusura', 'gepafin')} {getDateFromISOstring(data.dates[1])} {data.endTime}

} {REACT_APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE' && antiMoneyLaundryCalls.includes(data.id) ? null :

{__('Descrizione dettagliata', 'gepafin')}

{renderHtmlContent(data.descriptionLong)}
} {REACT_APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE' && antiMoneyLaundryCalls.includes(data.id) ? null :

{__('Requisiti di Partecipazione', 'gepafin')}

    {data.aimedTo.map((o, i) =>
  • {o.value}
  • )}
}

{__('Documentazione richiesta', 'gepafin')}

{renderHtmlContent(data.documentationRequested)}
{/*

{__('Criteri di Valutazione', 'gepafin')}

    {data.criteria.map((o, i) =>
  • {o.value} {o.score > 0 ? sprintf(__(' (%d punti)'), o.score) : null}
  • )}
*/} {REACT_APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE' && antiMoneyLaundryCalls.includes(data.id) ? null :

{__('Allegati', 'gepafin')}

    {data.docs .filter(o => o.source === 'CALL' && o.type === 'DOCUMENT') .map((o, i) =>
  • {o.name}
  • )}
}

{__('FAQ', 'gepafin')}

{data.faq .filter(o => o.isVisible) .map((o, i) =>
{renderHtmlContent(o.response)}
)}
{REACT_APP_HUB_ID === 't7jh5wfg9QXylNaTZkPoE' ? null :

{__('Non hai trovato la risposta che cercavi?', 'gepafin')}

setNewQuestion(e.target.value)} aria-describedby="newQuestion-help"/> {__('Riceverai una notifica quando ti risponderemo', 'gepafin')}
}

{__('Download Documenti', 'gepafin')}

{__('Contatti per Assistenza', 'gepafin')}

Email: {data.email}

{!isNil(data.phoneNumber) ?

{__('Telefono', 'gepafin')}: +39 {data.phoneNumber}

: null}
: <> }
) } export default BandoViewPreInstructor;