import React, { useState, useEffect, useRef } from 'react'; import { __ } from '@wordpress/i18n'; import { useNavigate, useParams } from 'react-router-dom'; import { isEmpty } from 'ramda'; import { wrap } from 'object-path-immutable'; // store import { storeSet, useStore } from '../../store'; // api import AmendmentsService from '../../service/amendments-service'; // tools import set404FromErrorResponse from '../../helpers/set404FromErrorResponse'; // components import { Skeleton } from 'primereact/skeleton'; import { Button } from 'primereact/button'; import { Checkbox } from 'primereact/checkbox'; import { Editor } from 'primereact/editor'; import { InputNumber } from 'primereact/inputnumber'; import BlockingOverlay from '../../components/BlockingOverlay'; import { Toast } from 'primereact/toast'; import { InputSwitch } from 'primereact/inputswitch'; const SoccorsoEditPreInstructor = () => { const isAsyncRequest = useStore().main.isAsyncRequest(); const { id, evaluationId } = useParams(); const navigate = useNavigate(); const [data, setData] = useState({}); const [formData, setFormData] = useState({}); const toast = useRef(null); const goToEvaluationPage = () => { navigate(`/domande/${id}`); } const getCallback = (data) => { if (data.status === 'SUCCESS') { console.log(data.data) setData(data.data); setFormData(getFormattedFormData(data.data)); } storeSet.main.unsetAsyncRequest(); } const errGetCallback = (data) => { if (toast.current && data.message) { toast.current.show({ severity: 'error', summary: '', detail: data.message }); } set404FromErrorResponse(data); storeSet.main.unsetAsyncRequest(); } const getFormattedFormData = (data) => { let newData = {}; newData.formFields = data.formFields; newData.responseDays = 10; newData.note = ''; newData.sendNotification = true; newData.sendEmail = true; return newData; }; const renderHeader = () => { return ( ); }; const header = renderHeader(); const updateEvaluationValue = (value, path, maxValue) => { let finalValue = value; if (maxValue) { finalValue = value > maxValue ? maxValue : value; } const newData = wrap(formData).set(path.split('.'), finalValue).value(); setFormData(newData); } const doCreate = () => { storeSet.main.setAsyncRequest(); AmendmentsService.createSoccorso(formData, createCallback, errCreateCallback, [ ['applicationEvaluationId', evaluationId] ]); } const createCallback = (data) => { if (data.status === 'SUCCESS') { if (toast.current) { toast.current.show({ severity: 'success', summary: '', detail: data.message }); } setTimeout(() => { navigate(`/domande/${id}/soccorso/${data.data.id}`); }, 1000) } storeSet.main.unsetAsyncRequest(); } const errCreateCallback = (data) => { if (toast.current && data.message) { toast.current.show({ severity: 'error', summary: '', detail: data.message }); } set404FromErrorResponse(data); storeSet.main.unsetAsyncRequest(); } useEffect(() => { const parsed = parseInt(evaluationId) const entityId = !isNaN(parsed) ? parsed : 0; storeSet.main.setAsyncRequest(); AmendmentsService.getSoccorsoByApplId(entityId, getCallback, errGetCallback); }, [evaluationId]); return (
{__('ID domanda', 'gepafin')} {data.applicationId}
{__('Bando', 'gepafin')} {data.callName}
{__('Beneficiario', 'gepafin')} {data.beneficiaryName}