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'; import ApplicationEvaluationService from '../../service/application-evaluation-service'; const SoccorsoAddPreInstructor = () => { const isAsyncRequest = useStore().main.isAsyncRequest(); const { id } = useParams(); const navigate = useNavigate(); const [data, setData] = useState({}); const [evaluationId, setEvaluationId] = useState(0); const [formData, setFormData] = useState({}); const toast = useRef(null); const goToEvaluationPage = () => { navigate(`/domande/${id}`); } useEffect(() => { const parsed = parseInt(id) const entityId = !isNaN(parsed) ? parsed : 0; storeSet.main.setAsyncRequest(); ApplicationEvaluationService.getEvaluationByApplId(getCallbackEvaluation, errGetCallback, [ ['applicationId', entityId] ]); }, [id]); const getCallbackEvaluation = (data) => { if (data.status === 'SUCCESS') { setEvaluationId(data.data.assignedApplicationId); AmendmentsService.getSoccorsoByApplEvalId(data.data.assignedApplicationId, getCallback, errGetCallback) } } const getCallback = (data) => { if (data.status === 'SUCCESS') { 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.isSendNotification = true; newData.isSendEmail = 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(); } return (
{__('ID domanda', 'gepafin')} {data.applicationId}
{__('Bando', 'gepafin')} {data.callName}
{__('Beneficiario', 'gepafin')} {data.beneficiaryName}