diff --git a/src/assets/scss/components/appPage.scss b/src/assets/scss/components/appPage.scss index a608ea4..59ad1cc 100644 --- a/src/assets/scss/components/appPage.scss +++ b/src/assets/scss/components/appPage.scss @@ -413,6 +413,10 @@ flex-wrap: wrap; } +.appPageSection__actions:empty { + display: none; +} + .appPageSection__tableActions { display: flex; gap: 10px; diff --git a/src/configData.js b/src/configData.js index 57c712a..1ad8478 100644 --- a/src/configData.js +++ b/src/configData.js @@ -262,4 +262,9 @@ export const classificationType = [ 'name': 'GENERICO', 'idTipoprotocollo': 3 } -]; \ No newline at end of file +]; + +export const resendEmailLabelsByType = { + APPLICATION_AMENDMENT_REQUESTED: 'Invia email (nuovo soccorso)', + APPLICATION_AMENDMENT_REMINDER: 'Invia email (sollecito)' +} \ No newline at end of file diff --git a/src/pages/SoccorsoEditPreInstructor/components/SoccorsoResendEmails/index.js b/src/pages/SoccorsoEditPreInstructor/components/SoccorsoResendEmails/index.js new file mode 100644 index 0000000..88a081a --- /dev/null +++ b/src/pages/SoccorsoEditPreInstructor/components/SoccorsoResendEmails/index.js @@ -0,0 +1,81 @@ +import React, { useRef, useState } from 'react'; +import { pathOr } from 'ramda'; + +// tools +import set404FromErrorResponse from '../../../../helpers/set404FromErrorResponse'; + +// api +import EmailService from '../../../../service/email-service'; + +import { Toast } from 'primereact/toast'; +import { Button } from 'primereact/button'; + +import { resendEmailLabelsByType } from '../../../../configData'; + +const SoccorsoResendEmails = ({ emailsData = [], setDataEmailsSoccorso }) => { + const [isResendingRequest, setIsResendingRequest] = useState(false); + const toast = useRef(null); + const filtered = emailsData.filter(o => !o.isEmailSend); + + const resendEmail = (data) => { + setIsResendingRequest(true); + + EmailService.emailResend( + data.userActionId, + (resp) => resendingCallback(resp, data.userActionId), + errResendingCallback + ); + } + + const resendingCallback = (resp, id) => { + if (resp.status === 'SUCCESS') { + if (toast.current && resp.message) { + toast.current.show({ + severity: 'success', + summary: '', + detail: resp.message + }); + } + setTimeout(() => { + if (setDataEmailsSoccorso) { + const newEmailSendResponse = emailsData.map((o) => { + if (o.userActionId === id) { + o.isEmailSend = true; + } + return o; + }); + setDataEmailsSoccorso(newEmailSendResponse); + } + setIsResendingRequest(false); + }, 1500); + } + } + + const errResendingCallback = (resp) => { + if (toast.current && resp.message) { + toast.current.show({ + severity: 'error', + summary: '', + detail: resp.message + }); + } + set404FromErrorResponse(resp); + setIsResendingRequest(false); + } + + return( + filtered.length > 0 ? <> + + {filtered + .map(o =>