Skip to content

Commit ac214d0

Browse files
fix: invalid document url convert in arrayBuffer issue
1 parent 7e6df13 commit ac214d0

File tree

3 files changed

+22
-22
lines changed

3 files changed

+22
-22
lines changed

apps/OpenSign/src/pages/PdfRequestFiles.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ function PdfRequestFiles() {
9797
const [currWidgetsDetails, setCurrWidgetsDetails] = useState({});
9898
const [isSubscriptionExpired, setIsSubscriptionExpired] = useState(false);
9999
const [extUserId, setExtUserId] = useState("");
100+
const [pdfArrayBuffer, setPdfArrayBuffer] = useState("");
100101
const divRef = useRef(null);
101102
const isMobile = window.innerWidth < 767;
102103
const rowLevel =
@@ -167,6 +168,10 @@ function PdfRequestFiles() {
167168
//getting document details
168169
const documentData = await contractDocument(documentId);
169170
if (documentData && documentData.length > 0) {
171+
const url = documentData[0] && documentData[0]?.URL;
172+
//convert document url in array buffer format to use embed widgets in pdf using pdf-lib
173+
const arrayBuffer = await fetch(url).then((res) => res.arrayBuffer());
174+
setPdfArrayBuffer(arrayBuffer);
170175
if (isEnableSubscription) {
171176
await checkIsSubscribed(documentData[0]?.ExtUserPtr?.Email);
172177
}
@@ -543,13 +548,11 @@ function PdfRequestFiles() {
543548
setIsUiLoading(true);
544549
const pngUrl = checkUser[0].placeHolder;
545550
// Load a PDFDocument from the existing PDF bytes
546-
const existingPdfBytes = await fetch(pdfUrl).then((res) =>
547-
res.arrayBuffer()
548-
);
551+
const existingPdfBytes = pdfArrayBuffer;
549552
const pdfDoc = await PDFDocument.load(existingPdfBytes, {
550553
ignoreEncryption: true
551554
});
552-
const flag = false;
555+
const isSignYourSelfFlow = false;
553556
const extUserPtr = pdfDetails[0].ExtUserPtr;
554557
const HeaderDocId = extUserPtr?.HeaderDocId;
555558
//embed document's object id to all pages in pdf document
@@ -563,7 +566,7 @@ function PdfRequestFiles() {
563566
pngUrl,
564567
pdfDoc,
565568
pdfOriginalWidth,
566-
flag,
569+
isSignYourSelfFlow,
567570
containerWH
568571
);
569572
//get ExistUserPtr object id of user class to get tenantDetails

apps/OpenSign/src/pages/PlaceHolderSign.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ function PlaceHolderSign() {
121121
const [isSubscribe, setIsSubscribe] = useState(false);
122122
const [requestSubject, setRequestSubject] = useState("");
123123
const [requestBody, setRequestBody] = useState("");
124+
const [pdfArrayBuffer, setPdfArrayBuffer] = useState("");
124125
const [isAlreadyPlace, setIsAlreadyPlace] = useState({
125126
status: false,
126127
message: ""
@@ -263,6 +264,10 @@ function PlaceHolderSign() {
263264
//getting document details
264265
const documentData = await contractDocument(documentId);
265266
if (documentData && documentData.length > 0) {
267+
const url = documentData[0] && documentData[0]?.URL;
268+
//convert document url in array buffer format to use embed widgets in pdf using pdf-lib
269+
const arrayBuffer = await fetch(url).then((res) => res.arrayBuffer());
270+
setPdfArrayBuffer(arrayBuffer);
266271
setExtUserId(documentData[0]?.ExtUserPtr?.objectId);
267272
if (isEnableSubscription) {
268273
checkIsSubscribed(documentData[0]?.ExtUserPtr?.Email);
@@ -794,10 +799,7 @@ function PlaceHolderSign() {
794799
const prefillExist = signerPos.filter((data) => data.Role === "prefill");
795800
if (prefillExist && prefillExist.length > 0) {
796801
const placeholder = prefillExist[0].placeHolder;
797-
const pdfUrl = pdfDetails[0].URL;
798-
const existingPdfBytes = await fetch(pdfUrl).then((res) =>
799-
res.arrayBuffer()
800-
);
802+
const existingPdfBytes = pdfArrayBuffer;
801803
const pdfDoc = await PDFDocument.load(existingPdfBytes, {
802804
ignoreEncryption: true
803805
});

apps/OpenSign/src/pages/SignyourselfPdf.js

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ function SignYourSelf() {
102102
const [isDontShow, setIsDontShow] = useState(false);
103103
const [extUserId, setExtUserId] = useState("");
104104
const [isCompleted, setIsCompleted] = useState(false);
105+
const [pdfArrayBuffer, setPdfArrayBuffer] = useState("");
105106
const divRef = useRef(null);
106107
const nodeRef = useRef(null);
107108
const [, drop] = useDrop({
@@ -190,6 +191,10 @@ function SignYourSelf() {
190191
if (documentData && documentData.length > 0) {
191192
setPdfDetails(documentData);
192193
setExtUserId(documentData[0]?.ExtUserPtr?.objectId);
194+
const url = documentData[0] && documentData[0]?.URL;
195+
//convert document url in array buffer format to use embed widgets in pdf using pdf-lib
196+
const arrayBuffer = await fetch(url).then((res) => res.arrayBuffer());
197+
setPdfArrayBuffer(arrayBuffer);
193198
isCompleted = documentData[0].IsCompleted && documentData[0].IsCompleted;
194199
if (isCompleted) {
195200
setIsCompleted(true);
@@ -255,9 +260,7 @@ function SignYourSelf() {
255260
setHandleError("Error: Something went wrong!");
256261
setIsLoading(loadObj);
257262
});
258-
259263
const contractUsersRes = await contractUsers(jsonSender.email);
260-
261264
if (contractUsersRes[0] && contractUsersRes.length > 0) {
262265
setContractName("_Users");
263266
setSignerUserId(contractUsersRes[0].objectId);
@@ -561,22 +564,14 @@ function SignYourSelf() {
561564
setIsCeleb(false);
562565
}, 3000);
563566
setIsUiLoading(true);
564-
const url = pdfDetails[0] && pdfDetails[0].URL;
565-
566-
const existingPdfBytes = await fetch(url).then((res) =>
567-
res.arrayBuffer()
568-
);
569-
567+
const existingPdfBytes = pdfArrayBuffer;
570568
// Load a PDFDocument from the existing PDF bytes
571569
const pdfDoc = await PDFDocument.load(existingPdfBytes, {
572570
ignoreEncryption: true
573571
});
574-
575-
const flag = true;
576-
572+
const isSignYourSelfFlow = true;
577573
const extUserPtr = pdfDetails[0].ExtUserPtr;
578574
const HeaderDocId = extUserPtr?.HeaderDocId;
579-
580575
//embed document's object id to all pages in pdf document
581576
if (!HeaderDocId) {
582577
await embedDocId(pdfDoc, documentId, allPages);
@@ -586,7 +581,7 @@ function SignYourSelf() {
586581
xyPostion,
587582
pdfDoc,
588583
pdfOriginalWidth,
589-
flag,
584+
isSignYourSelfFlow,
590585
containerWH
591586
);
592587
// console.log("pdf", pdfBytes);

0 commit comments

Comments
 (0)