applied downloadable checkbox on submit of new appeal

This commit is contained in:
2026-03-16 13:58:02 +00:00
parent 72eafd0a8e
commit 7c84344d5d
9 changed files with 189 additions and 57 deletions
+87 -1
View File
@@ -124,6 +124,8 @@ let BuildCheckSection = (props) => {
const [confirmSections, setConfirmSections] = useState(false);
const [finaliseAppealProcess, setFinaliseAppealProcess] = useState(false);
const [downloadAppealForm, setDownloadAppealForm] = useState(false);
const [downloadInProgress, setDownloadInProgress] = useState(false);
const FieldsTranslations = (label) => {
const router = useRouter();
@@ -183,6 +185,65 @@ let BuildCheckSection = (props) => {
: setConfirmSections(false);
};
const triggerAppealDownload = async () => {
if (downloadInProgress) {
return;
}
try {
setDownloadInProgress(true);
const uniqueArray = pdfObj.filesList.filter(
(value, index, self) =>
index === self.findIndex((t) => t.name === value.name)
);
pdfObj.filesList = uniqueArray;
console.log(pdfObj);
const containerID =
props.accountDetails?.containerID ||
props.props?.accountDetails?.containerID ||
props.props?.props?.accountDetails?.containerID;
const caseRef =
props?.currentView?.caseReference?.ticketnumber ||
props?.appealType?.caseReference?.ticketnumber;
if (!containerID || !caseRef) {
console.error(
"Appeal Form download skipped: missing containerID or case reference",
{ containerID, caseRef }
);
return;
}
const pdfBlob = await generateAppealPDF(
pdfObj,
containerID,
caseRef,
router.query.appealtypes,
pdfObj.filesList,
{ download: true }
);
if (pdfBlob) {
const blobUrl = window.URL.createObjectURL(pdfBlob);
const anchor = document.createElement("a");
anchor.href = blobUrl;
anchor.download = `${"appealForm"}.pdf`;
document.body.appendChild(anchor);
anchor.click();
anchor.remove();
window.URL.revokeObjectURL(blobUrl);
}
} catch (error) {
console.error("Appeal Form download failed", error);
} finally {
setDownloadInProgress(false);
}
};
let ShowDocLinks = getDocLink(docsOffline);
return (
@@ -280,6 +341,30 @@ let BuildCheckSection = (props) => {
<>
<div className="govuk-form-group ">
<fieldset className="govuk-fieldset">
<div className="govuk-checkboxes govuk-checkboxes--small">
<div className="govuk-checkboxes__item">
<input
name="pinswg_downloadAppealForm"
id="pinswg_downloadAppealForm"
type="checkbox"
className="govuk-checkboxes__input"
checked={downloadAppealForm}
onChange={(e) => {
setDownloadAppealForm(
e.target.checked
);
}}
/>
<label
className="govuk-label govuk-checkboxes__label"
htmlFor="pinswg_downloadAppealForm"
>
{t(
"newappeal:new-appeal-check-download-label"
)}
</label>
</div>
</div>
<div className="govuk-checkboxes govuk-checkboxes--small">
<div className="govuk-checkboxes__item">
<input
@@ -363,7 +448,8 @@ let BuildCheckSection = (props) => {
}
className="govuk-button"
data-module="govuk-button"
onClick={() => {
onClick={async () => {
await triggerAppealDownload();
finaliseAppeal();
}}
>