import { JSONPath as jsonpath } from "jsonpath-plus"; import useTranslation from "next-translate/useTranslation"; import Link from "next/link"; import { useRouter } from "next/router"; import { useEffect, useState } from "react"; import { connect } from "react-redux"; import { formValueSelector, Field, reduxForm } from "redux-form"; import xpath from "xpath"; import fieldLookup from "../../data/crmfieldlookuptranslations.json"; import { setCurrentSection, setFormComplete, } from "../../store/appealType/action"; import BuildCheckRow from "./buildcheckrow"; import { generateAppealPDF, sendCaseCompleteMessage } from "../../actions"; import { bytesToSize, getThumbnailIconByExtension } from "../utils"; let BuildCheckSection = (props) => { useEffect(() => { setFormComplete(); }, []); let { t } = useTranslation(); const router = useRouter(); const { locale } = router; const { formXML, sectionCount, onSubmit, handleSubmit, formTitle, setCurrentSection, updateCurrentSection, mandatoryFieldsData, } = props; const parser = new DOMParser(); var doc = parser.parseFromString(props.formXML, "text/xml"); var titles = xpath.select( "//form/tabs/tab[*]/labels/label/@description", doc ); var rowXML = xpath.select( "/form/tabs/tab[*]/columns//sections/section/rows/row", doc ); var titleList = xpath.select( "//form/tabs/tab[*]/labels/label/@description", doc ); const handleParam = (setValue) => (e) => setValue(e.target.value); // const basicSearch = (event) => { // event.preventDefault(); // //console.log(query); // // /searchresults // }; const onHandleSubmit = (values) => { //alert(1); //updateCaseProgress(values); // setCurrentSection(9999); alert(1); }; let buildAppealFilesArray = []; //console.log("attached docs: - ", buildAppealFilesArray); buildAppealFilesArray = props.props.form.appealForm.values.filesList || []; let filesUploadObj = props.appealType.fileList.hasOwnProperty("value") ? props.appealType.fileList.value[0] : []; for (let key in filesUploadObj) { typeof filesUploadObj[key].name != "undefined" && buildAppealFilesArray.push({ "name": filesUploadObj[key].name, "size": filesUploadObj[key].contentLength, }); } buildAppealFilesArray.filter(function (item, idx) { return item.name; }); //console.log(buildAppealFilesArray); function removeDuplicates(arr, key) { const seen = new Set(); return arr.filter((item) => { const value = item[key]; if (seen.has(value)) { return false; // Duplicate found } else { seen.add(value); // Add value to the set return true; // Keep the item } }); } buildAppealFilesArray = removeDuplicates(buildAppealFilesArray, "name"); let pdfObj = props.props.form.appealForm.values; Object.assign(pdfObj, { "containerID": props.props.accountDetails.containerID, "casefolderID": props.appealType.caseReference.ticketnumber, }); const [confirmSections, setConfirmSections] = useState(false); const [finaliseAppealProcess, setFinaliseAppealProcess] = useState(false); const FieldsTranslations = (label) => { const router = useRouter(); const { locale } = router; const { appealtypes } = router.query; let formObj = jsonpath("$['" + appealtypes + "']", fieldLookup); let labelTrans = router.locale == "cy" ? jsonpath('$..[?(@.value=="' + label + '")].value_cy', formObj) : label; return labelTrans; }; const finaliseAppeal = async () => { //console.log("finalising appeal:", pdfObj); const uniqueArray = pdfObj.filesList.filter( (value, index, self) => index === self.findIndex((t) => t.name === value.name) ); pdfObj.filesList = uniqueArray; confirmSections ? (setFinaliseAppealProcess(true), await generateAppealPDF( pdfObj, props.props.accountDetails.containerID, props.appealType.caseReference.ticketnumber, router.query.appealtypes, pdfObj.filesList // props.appealType.fileList ) .then((data) => { console.log("have generated pdf:", data); sendCaseCompleteMessage( props.props.accountDetails.containerID, props.appealType.caseReference.ticketnumber, props.props.accountDetails.accountDetails .pinswg_typeofinvolvement ); }) .then(() => { //console.log("have sent complete message :"); setCurrentSection(9999); })) : setConfirmSections(false); }; return (
Currenly uploading files and finalising your appeal submission
Please wait
{t( "newappeal:new-appeal-check-confirm-paragraph-one" )}
{t( "newappeal:new-appeal-check-confirm-paragraph-two" )}{" "} {t( "newappeal:new-appeal-check-confirm-paragraph-two-link" )}