fix: add try catch to convert pdf array buffer

This commit is contained in:
RaktimaNXG
2024-04-17 19:04:57 +05:30
parent ac214d0467
commit 737b33db1e
4 changed files with 40 additions and 9 deletions
+16
View File
@@ -1895,3 +1895,19 @@ export const copytoData = (text) => {
document.body.removeChild(textArea);
}
};
export const convertPdfArrayBuffer = async (url) => {
try {
const response = await fetch(url);
// Check if the response was successful (status 200)
if (!response.ok) {
return "Error";
}
// Convert the response to ArrayBuffer
const arrayBuffer = await response.arrayBuffer();
return arrayBuffer;
} catch (error) {
console.error("Error fetching data:", error);
return "Error";
}
};
+8 -3
View File
@@ -23,7 +23,8 @@ import {
addDefaultSignatureImg,
radioButtonWidget,
replaceMailVaribles,
fetchSubscription
fetchSubscription,
convertPdfArrayBuffer
} from "../constant/Utils";
import Loader from "../primitives/LoaderWithMsg";
import HandleError from "../primitives/HandleError";
@@ -170,8 +171,12 @@ function PdfRequestFiles() {
if (documentData && documentData.length > 0) {
const url = documentData[0] && documentData[0]?.URL;
//convert document url in array buffer format to use embed widgets in pdf using pdf-lib
const arrayBuffer = await fetch(url).then((res) => res.arrayBuffer());
setPdfArrayBuffer(arrayBuffer);
const arrayBuffer = await convertPdfArrayBuffer(url);
if (arrayBuffer === "Error") {
setHandleError("Error: Something went wrong!");
} else {
setPdfArrayBuffer(arrayBuffer);
}
if (isEnableSubscription) {
await checkIsSubscribed(documentData[0]?.ExtUserPtr?.Email);
}
+8 -3
View File
@@ -33,7 +33,8 @@ import {
getTenantDetails,
replaceMailVaribles,
copytoData,
fetchSubscription
fetchSubscription,
convertPdfArrayBuffer
} from "../constant/Utils";
import RenderPdf from "../components/pdf/RenderPdf";
import { useNavigate } from "react-router-dom";
@@ -266,8 +267,12 @@ function PlaceHolderSign() {
if (documentData && documentData.length > 0) {
const url = documentData[0] && documentData[0]?.URL;
//convert document url in array buffer format to use embed widgets in pdf using pdf-lib
const arrayBuffer = await fetch(url).then((res) => res.arrayBuffer());
setPdfArrayBuffer(arrayBuffer);
const arrayBuffer = await convertPdfArrayBuffer(url);
if (arrayBuffer === "Error") {
setHandleError("Error: Something went wrong!");
} else {
setPdfArrayBuffer(arrayBuffer);
}
setExtUserId(documentData[0]?.ExtUserPtr?.objectId);
if (isEnableSubscription) {
checkIsSubscribed(documentData[0]?.ExtUserPtr?.Email);
+8 -3
View File
@@ -28,7 +28,8 @@ import {
getDate,
textWidget,
getTenantDetails,
checkIsSubscribed
checkIsSubscribed,
convertPdfArrayBuffer
} from "../constant/Utils";
import { useParams } from "react-router-dom";
import Tour from "reactour";
@@ -193,8 +194,12 @@ function SignYourSelf() {
setExtUserId(documentData[0]?.ExtUserPtr?.objectId);
const url = documentData[0] && documentData[0]?.URL;
//convert document url in array buffer format to use embed widgets in pdf using pdf-lib
const arrayBuffer = await fetch(url).then((res) => res.arrayBuffer());
setPdfArrayBuffer(arrayBuffer);
const arrayBuffer = await convertPdfArrayBuffer(url);
if (arrayBuffer === "Error") {
setHandleError("Error: Something went wrong!");
} else {
setPdfArrayBuffer(arrayBuffer);
}
isCompleted = documentData[0].IsCompleted && documentData[0].IsCompleted;
if (isCompleted) {
setIsCompleted(true);