From d5d646e6e0894d68800adc7432ac6a9e523ec382 Mon Sep 17 00:00:00 2001 From: RaktimaNXG Date: Fri, 26 Jul 2024 18:37:48 +0530 Subject: [PATCH] fix: issue with files opening in a new tab on download instead of direct download --- apps/OpenSign/src/constant/Utils.js | 13 +++++++++++- .../src/primitives/GetReportDisplay.js | 20 ++++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/apps/OpenSign/src/constant/Utils.js b/apps/OpenSign/src/constant/Utils.js index a79fbc9b8..30e9a1f26 100644 --- a/apps/OpenSign/src/constant/Utils.js +++ b/apps/OpenSign/src/constant/Utils.js @@ -2001,7 +2001,18 @@ export const handleDownloadPdf = async ( } ); const url = axiosRes.data.result; - saveAs(url, `${sanitizeFileName(pdfName)}_signed_by_OpenSign™.pdf`); + try { + const response = await fetch(url); + if (!response.ok) { + alert("something went wrong, please try again later."); + throw new Error("Network response was not ok"); + } + const blob = await response.blob(); + saveAs(blob, `${sanitizeFileName(pdfName)}_signed_by_OpenSign™.pdf`); + } catch (error) { + alert("something went wrong, please try again later."); + console.error("Error downloading the file:", error); + } setIsDownloading(""); } catch (err) { console.log("err in getsignedurl", err); diff --git a/apps/OpenSign/src/primitives/GetReportDisplay.js b/apps/OpenSign/src/primitives/GetReportDisplay.js index 76635aa49..95b01182a 100644 --- a/apps/OpenSign/src/primitives/GetReportDisplay.js +++ b/apps/OpenSign/src/primitives/GetReportDisplay.js @@ -27,6 +27,7 @@ import BulkSendUi from "../components/BulkSendUi"; import Loader from "./Loader"; import Select from "react-select"; import SubscribeCard from "./SubscribeCard"; +import sanitizeFileName from "./sanitizeFileName"; const ReportTable = (props) => { const navigate = useNavigate(); @@ -595,14 +596,31 @@ const ReportTable = (props) => { // `handleDownload` is used to get valid doc url available in completed report const handleDownload = async (item) => { + setActLoader({ [`${item.objectId}`]: true }); const url = item?.SignedUrl || item?.URL || ""; + const pdfName = item?.Name || "exported_file"; if (url) { try { const signedUrl = await Parse.Cloud.run("getsignedurl", { url: url }); - saveAs(signedUrl); + // saveAs(signedUrl); + try { + const response = await fetch(signedUrl); + if (!response.ok) { + alert("something went wrong, please try again later."); + throw new Error("Network response was not ok"); + } + const blob = await response.blob(); + saveAs(blob, `${sanitizeFileName(pdfName)}_signed_by_OpenSign™.pdf`); + setActLoader({}); + } catch (error) { + alert("something went wrong, please try again later."); + console.error("Error downloading the file:", error); + setActLoader({}); + } } catch (err) { console.log("err in getsignedurl", err); alert("something went wrong, please try again later."); + setActLoader({}); } } };