hooks fixes and ordering of events

This commit is contained in:
2024-11-16 07:45:38 +00:00
parent aaf9b3e574
commit 4bf10d97db
6 changed files with 234 additions and 152 deletions
+16 -20
View File
@@ -961,7 +961,7 @@ export const getRepsFromBlob = (containerName) => {
});
};
export const getRepsFromBlobProxy = (containerName) => {
export const getRepsFromBlobProxy = async (containerName) => {
//console.log(
// "///////////////////////getRepsFromBlobProxy: " + containerName,
// "/api/file/getawaitingsubmissionfromblobproxy?container=" +
@@ -969,8 +969,8 @@ export const getRepsFromBlobProxy = (containerName) => {
// "\n///////////////////////\n"
// );
return axios
.get(
try {
const res = await axios.get(
// BASE_URL +
"/api/file/getrepsblobproxy?container=" + containerName
// +
@@ -978,16 +978,14 @@ export const getRepsFromBlobProxy = (containerName) => {
// "/api/file/getawaitingsubmissionfromblob?container=" +
// containerName
// )
)
.then((res) => {
return res.data;
})
.catch((error) => {
consoleLogger(error);
});
);
return res.data;
} catch (error) {
consoleLogger(error);
}
};
export const getAwaitingSubmissionFromBlobProxy = (containerName) => {
export const getAwaitingSubmissionFromBlobProxy = async (containerName) => {
console.log(
"///////////////////////getAwaitingSubmissionFromBlobProxy: " +
containerName,
@@ -996,8 +994,8 @@ export const getAwaitingSubmissionFromBlobProxy = (containerName) => {
"\n///////////////////////\n"
);
return axios
.get(
try {
const res = await axios.get(
// BASE_URL +
"/api/file/getawaitingsubmissionfromblobproxy?container=" +
containerName
@@ -1006,13 +1004,11 @@ export const getAwaitingSubmissionFromBlobProxy = (containerName) => {
// "/api/file/getawaitingsubmissionfromblob?container=" +
// containerName
// )
)
.then((res) => {
return res.data;
})
.catch((error) => {
consoleLogger(error);
});
);
return res.data;
} catch (error) {
consoleLogger(error);
}
};
export const getPortalModuleDetails = async (appealType, caseReference) => {
+110 -27
View File
@@ -2,7 +2,7 @@ import { JSONPath as jsonpath } from "jsonpath-plus";
import _ from "lodash";
import useTranslation from "next-translate/useTranslation";
import { useRouter } from "next/router";
import { useState } from "react";
import { useEffect, useState } from "react";
import { useDropzone } from "react-dropzone";
import { connect } from "react-redux";
import { formValueSelector, reduxForm } from "redux-form";
@@ -34,6 +34,9 @@ let MakeRepresentation = (props) => {
const [clearRepForm, setClearRepForm] = useState(false);
const [savingStatus, setSavingStatus] = useState(false);
const [showQuestionnaireSection, setShowQuestionnaireSection] = useState(1);
//const [questionnaireCount, setQuestionnaireCount] = useState(0);
const { data: session } = useSession();
const router = useRouter();
@@ -60,9 +63,33 @@ let MakeRepresentation = (props) => {
let setCaseQueryObj = props[currentType] || {};
var casesObj = {};
const [showQuestionnaireSection, setShowQuestionnaireSection] = useState(1);
const [questionnaireCount, setQuestionnaireCount] = useState(0);
const updateQuestionnaireCount = () => {
{
switch (currentView.caseReference.appealType) {
case 846040000:
case 846040001:
case 846040006:
case 846040025:
case 846040004:
case 846040018:
case 846040003:
case 846040009:
case 846040008:
return 7;
break;
case 846040005:
case 846040006:
case 846040007:
return 9;
break;
default:
return 7;
break;
}
}
};
let questionnaireCount = updateQuestionnaireCount();
const setRepFileName = (values) => {
//console.log("---------------\n", values);
if (
@@ -347,12 +374,13 @@ let MakeRepresentation = (props) => {
const whichControl = () => {
if (isLPA && _.isEmpty(currentView.representationCapacity)) {
return (
//setRepresentationCapacity("lpa"),
<RepLPACapacitySelection
formObj={formObj}
capacityOptionsArr={capacityOptionsArr}
currentType={currentType}
casesObj={casesObj}
setRepresentationCapacity={"LPA"}
setRepresentationCapacity={setRepresentationCapacity}
setRepresentationSubmit={setRepresentationSubmit}
onHandleSubmit={onHandleSubmit}
currentView={currentView}
@@ -408,6 +436,12 @@ let MakeRepresentation = (props) => {
break;
case "lpa":
//setRepresentationCapacity("appellant");
//setRepresentationCapacity("lpa");
// useEffect(() => {
// setRepresentationCapacity("lpa");
// }, []);
// console.log(currentView.caseReference.appealType);
return (
<RepLPA
formObj={formObj}
@@ -426,7 +460,7 @@ let MakeRepresentation = (props) => {
setShowQuestionnaireSection
}
showQuestionnaireSection={showQuestionnaireSection}
setQuestionnaireCount={setQuestionnaireCount}
//setQuestionnaireCount={setQuestionnaireCount}
questionnaireCount={questionnaireCount}
setRepFileName={setRepFileName}
updateRepresentation={updateRepresentation}
@@ -548,7 +582,7 @@ let MakeRepresentation = (props) => {
setShowQuestionnaireSection={
setShowQuestionnaireSection
}
setQuestionnaireCount={setQuestionnaireCount}
// setQuestionnaireCount={setQuestionnaireCount}
questionnaireCount={questionnaireCount}
/>
);
@@ -566,7 +600,7 @@ let MakeRepresentation = (props) => {
setShowQuestionnaireSection={
setShowQuestionnaireSection
}
setQuestionnaireCount={setQuestionnaireCount}
//setQuestionnaireCount={setQuestionnaireCount}
questionnaireCount={questionnaireCount}
/>
);
@@ -578,6 +612,53 @@ let MakeRepresentation = (props) => {
}
};
const sortFileObj = (filelistObj) => {
let blobList = filelistObj;
function removeObjectsWithUndefinedKey(arr, key) {
return arr.filter((obj) => obj[key] !== undefined);
}
function removeEmptyObjects(arr) {
return arr.filter((obj) => Object.keys(obj).length > 0);
}
blobList = removeEmptyObjects(blobList);
blobList = removeObjectsWithUndefinedKey(blobList, "name");
let buildAppealFilesArray = [];
let filesUploadObj = field.input.value;
for (let key in filesUploadObj) {
typeof filesUploadObj[key].name != "undefined" &&
buildAppealFilesArray.push({
"name": filesUploadObj[key].name,
"size": filesUploadObj[key].size,
});
}
buildAppealFilesArray = buildAppealFilesArray.concat(blobList);
function removeDuplicates(arr) {
const seen = new Set();
return arr.filter((obj) => {
const serializedObj = JSON.stringify(obj);
if (seen.has(serializedObj)) {
return false; // Skip this object (duplicate)
}
seen.add(serializedObj); // Add the serialized object to the "seen" set
return true; // Keep this object
});
}
buildAppealFilesArray = removeDuplicates(buildAppealFilesArray);
blobList = buildAppealFilesArray;
return blobList;
};
const updateRepresentation = async (
values,
sendSavedEmail,
@@ -727,17 +808,18 @@ let MakeRepresentation = (props) => {
? router.locale + "/myportal"
: "/myportal"
))
: values.hasOwnProperty("representationDocuments") &&
(values.representationDocuments.map((Blob) =>
buildFileArray.push({
"name": Blob.name,
"size": Blob.size,
})
),
Object.assign(values, {
"filesList": buildFileArray,
})),
uploadRepresentationFiles(values),
: //values.hasOwnProperty("representationDocuments") &&
// sortFileObj()
// (values.representationDocuments.map((Blob) =>
// buildFileArray.push({
// "name": Blob.name,
// "size": Blob.size,
// })
// ),
// Object.assign(values, {
// "filesList": buildFileArray,
// })),
uploadRepresentationFiles(values),
generateRepPDF(
values,
props.props.accountDetails.containerID,
@@ -929,18 +1011,19 @@ let MakeRepresentation = (props) => {
const repForm = props.props.form;
try {
let value = props.initialValues;
setRepresentationCapacity(
props.initialValues.representationCapacity.toLowerCase()
);
//setRepresentationSubmit(false);
} catch {
console.log("not has props");
}
// try {
// let value = props.initialValues;
// setRepresentationCapacity(
// props.initialValues.representationCapacity.toLowerCase()
// );
// //setRepresentationSubmit(false);
// } catch {
// console.log("not has props");
// }
return (
<div>
<div>hello {currentView.representationSubmit ? "yep" : "no"}</div>
<form onSubmit={handleSubmit(onHandleSubmit)}>
{currentView.representationSubmit == true ? (
<RepCompleteSubmit
@@ -12,6 +12,7 @@ import { bytesToSize, getThumbnailIconByExtension } from "../../utils";
const RepCompleteSubmit = (props) => {
let { t } = useTranslation();
const [confirmSections, setConfirmSections] = useState(false);
const router = useRouter();
const { locale } = router;
@@ -33,8 +34,6 @@ const RepCompleteSubmit = (props) => {
</li>
));
const [confirmSections, setConfirmSections] = useState(false);
const repFormData = formObj.representationForm.values;
//const repDate = new Date();
@@ -133,29 +132,27 @@ const RepCompleteSubmit = (props) => {
let buildAppealFilesArray = [];
let filesUploadObj =
formObj.representationForm.values.representationDocuments;
// let filesUploadObj =
// formObj.representationForm.values.representationDocuments;
for (let key in filesUploadObj) {
typeof filesUploadObj[key].name != "undefined" &&
buildAppealFilesArray.push({
"name": filesUploadObj[key].name,
"size": filesUploadObj[key].size,
});
}
// for (let key in filesUploadObj) {
// typeof filesUploadObj[key].name != "undefined" &&
// buildAppealFilesArray.push({
// "name": filesUploadObj[key].name,
// "size": filesUploadObj[key].size,
// });
// }
console.log(
buildAppealFilesArray,
formObj.representationForm.values.filesList
);
// console.log(
// buildAppealFilesArray,
// formObj.representationForm.values.filesList
// );
buildAppealFilesArray = formObj.representationForm.values.hasOwnProperty(
"filesList"
)
? buildAppealFilesArray.concat(
formObj.representationForm.values.filesList
)
: buildAppealFilesArray;
? formObj.representationForm.values.filesList
: [];
console.log(buildAppealFilesArray);
@@ -163,19 +160,19 @@ const RepCompleteSubmit = (props) => {
// ...new Map(buildAppealFilesArray.map((v) => [v.name, v])).values(),
// ];
buildAppealFilesArray = buildAppealFilesArray.filter(function (el) {
return el != null;
});
// buildAppealFilesArray = buildAppealFilesArray.filter(function (el) {
// return el != null;
// });
const arrUniq = buildAppealFilesArray.filter(
(obj1, i, arr) => arr.findIndex((obj2) => obj2.name === obj1.name) === i
);
// const arrUniq = buildAppealFilesArray.filter(
// (obj1, i, arr) => arr.findIndex((obj2) => obj2.name === obj1.name) === i
// );
console.log(arrUniq);
// console.log(arrUniq);
Object.assign(formObj.representationForm.values, {
"filesList": arrUniq,
});
// Object.assign(formObj.representationForm.values, {
// "filesList": arrUniq,
// });
let filterFiles = [];
return (
@@ -357,37 +354,36 @@ const RepCompleteSubmit = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{formObj.representationForm.values
.filesList.length > 0
? ((filterFiles =
formObj.representationForm.values.filesList.filter(
function (el) {
return el != null;
}
)),
filterFiles.map((blob, i) => (
<div
key={blob.name + "_" + i}
className="govuk-!-margin-bottom-5 fileThumb "
>
<img
src={getThumbnailIconByExtension(
blob.name
)}
alt={blob.name}
width="50"
/>
{buildAppealFilesArray.length > 0
? buildAppealFilesArray.map(
(blob, i) => (
<div
key={
blob.name +
"_" +
i
}
className="govuk-!-margin-bottom-5 fileThumb "
>
<img
src={getThumbnailIconByExtension(
blob.name
)}
alt={blob.name}
width="50"
/>
<span className="govuk-body govuk-!-font-size-14 govuk-!-padding-left-5">
{blob.name} (
{bytesToSize(
blob.size
)}
)
</span>
</div>
)))
: ""}{" "}
<span className="govuk-body govuk-!-font-size-14 govuk-!-padding-left-5">
{blob.name} (
{bytesToSize(
blob.size
)}
)
</span>
</div>
)
)
: ""}
</dd>
<dd className="govuk-summary-list__actions">
@@ -966,21 +966,46 @@ export const RenderFileUpload = (field) => {
let blobList = filelistObj;
// let buildAppealFilesArray = [];
function removeObjectsWithUndefinedKey(arr, key) {
return arr.filter((obj) => obj[key] !== undefined);
}
// let filesUploadObj = field.input.value;
function removeEmptyObjects(arr) {
return arr.filter((obj) => Object.keys(obj).length > 0);
}
// for (let key in filesUploadObj) {
// typeof filesUploadObj[key].name != "undefined" &&
// buildAppealFilesArray.push({
// "name": filesUploadObj[key].name,
// "size": filesUploadObj[key].size,
// });
// }
blobList = removeEmptyObjects(blobList);
blobList = removeObjectsWithUndefinedKey(blobList, "name");
// buildAppealFilesArray = buildAppealFilesArray.concat(blobList);
let buildAppealFilesArray = [];
// blobList = buildAppealFilesArray;
let filesUploadObj = field.input.value;
for (let key in filesUploadObj) {
typeof filesUploadObj[key].name != "undefined" &&
buildAppealFilesArray.push({
"name": filesUploadObj[key].name,
"size": filesUploadObj[key].size,
});
}
buildAppealFilesArray = buildAppealFilesArray.concat(blobList);
function removeDuplicates(arr) {
const seen = new Set();
return arr.filter((obj) => {
const serializedObj = JSON.stringify(obj);
if (seen.has(serializedObj)) {
return false; // Skip this object (duplicate)
}
seen.add(serializedObj); // Add the serialized object to the "seen" set
return true; // Keep this object
});
}
buildAppealFilesArray = removeDuplicates(buildAppealFilesArray);
blobList = buildAppealFilesArray;
const deleteThisBlob = async (
containerName,
@@ -1054,7 +1079,7 @@ export const RenderFileUpload = (field) => {
{field.meta.touched && field.meta.error && (
<span className="error">{field.meta.error}</span>
)}
{files && Array.isArray(files) && (
{blobList && Array.isArray(files) && (
<ul>
{files.map(
(file, i) =>
@@ -5,7 +5,7 @@ import { useRouter } from "next/router";
import { useDropzone } from "react-dropzone";
import { connect } from "react-redux";
import { Field, change, formValueSelector, reduxForm } from "redux-form";
import { useState } from "react";
import { useState, useEffect } from "react";
import {
FileUploadField,
@@ -41,7 +41,6 @@ let RepLPA = (props) => {
} = props;
const { acceptedFiles, getRootProps, getInputProps } = useDropzone();
const [savingStatus, setSavingStatus] = useState(false);
const files = acceptedFiles.map((file) => (
<li key={file.path}>
{file.path} - {file.size} bytes
@@ -49,34 +48,6 @@ let RepLPA = (props) => {
));
const required = (value) => (value ? undefined : "Required");
const updateQuestionnaireCount = () => {
{
switch (currentView.caseReference.appealType) {
case 846040000:
case 846040001:
case 846040006:
case 846040025:
case 846040004:
case 846040018:
case 846040003:
case 846040009:
case 846040008:
setQuestionnaireCount(7);
break;
case 846040005:
case 846040006:
case 846040007:
setQuestionnaireCount(9);
break;
default:
setQuestionnaireCount(7);
break;
}
}
};
const whichQuestionnaire = () => {
{
switch (currentView.caseReference.appealType) {
@@ -90,7 +61,6 @@ let RepLPA = (props) => {
case 846040009:
case 846040008:
case 846040017:
updateQuestionnaireCount();
return (
<S78_Questionnaire
props={props}
@@ -110,7 +80,6 @@ let RepLPA = (props) => {
case 846040005:
case 846040006:
case 846040007:
updateQuestionnaireCount();
return (
<Enforcement_Questionnaire
props={props}
@@ -218,7 +187,8 @@ let RepLPA = (props) => {
);
resultsObj = resultsObj[0];
props.formObj["representationForm"].hasOwnProperty("values") &&
props.formObj.hasOwnProperty("representationForm") &&
props.formObj["representationForm"].hasOwnProperty("values") &&
props.formObj["representationForm"].values.hasOwnProperty(
"representationCapacity"
) &&
@@ -409,7 +379,6 @@ let RepLPA = (props) => {
Back
</a>
)}
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
+13
View File
@@ -21,6 +21,7 @@ import {
import {
setCurrentReference,
setCurrentView,
setRepresentationCapacity,
} from "../../store/currentView/action";
import {
setMyRepresentations,
@@ -45,6 +46,7 @@ const TopThree = (props) => {
setAwaitingSubmissionDetails,
setMyRepresentations,
setMyRepresentationsDetails,
setRepresentationCapacity,
} = props;
const router = useRouter();
@@ -107,6 +109,13 @@ const TopThree = (props) => {
});
};
const isLPA =
props.accountDetails.accountDetails[
"pinswg_typeofinvolvement@OData.Community.Display.V1.FormattedValue"
] == "LPA"
? true
: false;
const deleteRepItem = (containerID, caseID, repfile) => {
let cookies = parseCookies();
//console.log("sssss", containerID, caseID, repfile);
@@ -205,6 +214,7 @@ const TopThree = (props) => {
showTopThreeArr[key].appealType,
"repDetails": showTopThreeArr[key],
});
isLPA && setRepresentationCapacity("lpa");
}}
>
{showTopThreeArr[key].pinswg_name}
@@ -343,6 +353,9 @@ const mapDispatchToProps = (dispatch) => {
setMyRepresentationsDetails: (myRepresentationsDetails) => {
dispatch(setMyRepresentationsDetails(myRepresentationsDetails));
},
setRepresentationCapacity: (representationCapacity) => {
dispatch(setRepresentationCapacity(representationCapacity));
},
};
};