diff --git a/package.json b/package.json index 1fc4577..1299fdf 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "@xyflow/react": "12.3.1", "codice-fiscale-js": "2.3.22", "deep-object-diff": "^1.1.9", - "dompurify": "3.1.7", + "dompurify": "^3.1.7", "fast-deep-equal": "3.1.3", "html-react-parser": "5.1.16", "jwt-decode": "4.0.0", diff --git a/src/assets/scss/components/login.scss b/src/assets/scss/components/login.scss index 7824f0b..85d0344 100644 --- a/src/assets/scss/components/login.scss +++ b/src/assets/scss/components/login.scss @@ -38,6 +38,10 @@ cursor: pointer; } + &[disabled] { + background: var(--message-info-background); + } + span { color: #FFF; font-size: 17.25px; diff --git a/src/components/FormField/components/Switch/index.js b/src/components/FormField/components/Switch/index.js index c38cbf9..1dadfb9 100644 --- a/src/components/FormField/components/Switch/index.js +++ b/src/components/FormField/components/Switch/index.js @@ -1,7 +1,7 @@ import React from 'react'; import { classNames } from 'primereact/utils'; import { Controller } from 'react-hook-form'; -import { isNil, isEmpty } from 'ramda'; +import { isNil, isEmpty, is } from 'ramda'; // components import { InputSwitch } from 'primereact/inputswitch'; @@ -28,7 +28,7 @@ const Switch = ({ render={({ field, fieldState }) => ( field.onChange(e.value)} className={classNames({ 'p-invalid': fieldState.invalid })}/> diff --git a/src/helpers/renderHtmlContent.js b/src/helpers/renderHtmlContent.js index 672546a..2da65aa 100644 --- a/src/helpers/renderHtmlContent.js +++ b/src/helpers/renderHtmlContent.js @@ -1,6 +1,10 @@ import parse from 'html-react-parser'; import { isNil } from 'ramda'; +import DOMPurify from 'dompurify'; -const renderHtmlContent = (content = '') => !isNil(content) ? parse(content) : ''; +const renderHtmlContent = (content = '') => { + const clean = DOMPurify.sanitize(content); + return !isNil(clean) ? parse(clean) : ''; +} export default renderHtmlContent; \ No newline at end of file diff --git a/src/pages/BandoApplication/index.js b/src/pages/BandoApplication/index.js index bdcf8c4..bb80674 100644 --- a/src/pages/BandoApplication/index.js +++ b/src/pages/BandoApplication/index.js @@ -25,6 +25,7 @@ import { } from '../../helpers/validators'; import renderHtmlContent from '../../helpers/renderHtmlContent'; import set404FromErrorResponse from '../../helpers/set404FromErrorResponse'; +import getFormatedFileSizeText from '../../helpers/getFormatedFileSizeText'; // components import { Skeleton } from 'primereact/skeleton'; @@ -36,7 +37,7 @@ import ApplicationSteps from './ApplicationSteps'; import BlockingOverlay from '../../components/BlockingOverlay'; import { Dialog } from 'primereact/dialog'; import FileuploadApplicationSignedPdf from '../../components/FileuploadApplicationSignedPdf'; -import getFormatedFileSizeText from '../../helpers/getFormatedFileSizeText'; + import { defaultMaxFileSize } from '../../configData'; const BandoApplication = () => { @@ -47,7 +48,6 @@ const BandoApplication = () => { const [bandoTitle, setBandoTitle] = useState(''); const [formId, setFormId] = useState(''); const [totalSteps, setTotalSteps] = useState(0); - //const [completedSteps, setCompletedSteps] = useState(0); const [visibleConfirmation, setVisibleConfirmation] = useState(false); const [applicationStatus, setApplicationStatus] = useState(''); const [activeStep, setActiveStep] = useState(1); @@ -91,68 +91,9 @@ const BandoApplication = () => { storeSet.main.setAsyncRequest(); formMsgs.current.clear(); - /*ApplicationService.updateStatusApplication(applId, {}, submitApplicationCallback, errSubmitApplicationCallback, [ - ['status', 'SUBMIT'] - ]);*/ ApplicationService.validateApplication(applId, {}, validateApplicationCallback, errValidateApplicationCallback); }; - /*const submitApplicationCallback = (data) => { - if (data.status === 'SUCCESS') { - if (data.data.status) { - setApplicationStatus(data.data.status); // ask why not 'applicationStatus'? - } - } - storeSet.main.unsetAsyncRequest(); - } - - const errSubmitApplicationCallback = (data) => { - storeSet.main.unsetAsyncRequest(); - if (data.status === 'VALIDATION_ERROR') { - if (formMsgs.current) { - formMsgs.current.show([ - { - id: '99', - sticky: true, severity: 'error', summary: '', - detail: data.data.join(', '), - closable: true - } - ]); - } - } else if (data.status === 'EXCEPTION_ERROR') { - if (formMsgs.current) { - formMsgs.current.show([ - { - id: '99', - sticky: true, severity: 'error', summary: '', - detail: data.message, - closable: true - } - ]); - } - } else if (data.status === 'BAD_REQUEST') { - if (formMsgs.current) { - formMsgs.current.show([ - { - id: '99', - sticky: true, severity: 'error', summary: '', - detail: data.message, - closable: true - } - ]); - } - if (toast.current) { - toast.current.show({ - severity: 'error', - summary: '', - detail: data.message - }); - } - } else { - set404FromErrorResponse(data); - } - }*/ - const validateApplicationCallback = (data) => { if (data.status === 'SUCCESS') { if (data.data.status) { @@ -461,7 +402,8 @@ const BandoApplication = () => { useEffect(() => { if (formInitialData) { //reset(); - Object.keys(formInitialData).map(k => setValue(k, formInitialData[k])) + Object.keys(formInitialData).map(k => setValue(k, formInitialData[k])); + trigger(); } }, [formInitialData]); @@ -487,7 +429,7 @@ const BandoApplication = () => {
- {'SUBMIT' !== applicationStatus + {'DRAFT' === applicationStatus ? : null} @@ -510,12 +452,12 @@ const BandoApplication = () => {
- {'SUBMIT' !== applicationStatus + {'DRAFT' === applicationStatus ?
{actionBtns}
: null} - {'SUBMIT' !== applicationStatus + {'DRAFT' === applicationStatus ? formData.map(o => { const label = head(o.settings.filter(o => o.name === 'label')); const text = head(o.settings.filter(o => o.name === 'text')); @@ -576,7 +518,7 @@ const BandoApplication = () => { }) : null} - {'SUBMIT' === applicationStatus + {'AWAIT' === applicationStatus ?
: null} - {'SUBMIT' === applicationStatus + {'AWAIT' === applicationStatus ?