Skip to content

Commit d03515e

Browse files
Merge pull request #708 from OpenSignLabs/raktima-opensignlabs-patch-2
feat: implemented a solution allowing for the simultaneous signing of a document by multiple signers
2 parents 30e6e4b + ac82209 commit d03515e

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

apps/OpenSign/src/pages/PdfRequestFiles.js

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ function PdfRequestFiles() {
104104
const [currWidgetsDetails, setCurrWidgetsDetails] = useState({});
105105
const [isSubscriptionExpired, setIsSubscriptionExpired] = useState(false);
106106
const [extUserId, setExtUserId] = useState("");
107-
const [pdfArrayBuffer, setPdfArrayBuffer] = useState("");
108107
const [isEmailVerified, setIsEmailVerified] = useState(true);
109108
const [isVerifyModal, setIsVerifyModal] = useState(false);
110109
const [otp, setOtp] = useState("");
@@ -225,16 +224,6 @@ function PdfRequestFiles() {
225224
//getting document details
226225
const documentData = await contractDocument(documentId);
227226
if (documentData && documentData.length > 0) {
228-
const url =
229-
documentData[0] && (documentData[0]?.SignedUrl || documentData[0]?.URL);
230-
//convert document url in array buffer format to use embed widgets in pdf using pdf-lib
231-
const arrayBuffer = await convertPdfArrayBuffer(url);
232-
if (arrayBuffer === "Error") {
233-
setHandleError("Error: Something went wrong!");
234-
} else {
235-
setPdfArrayBuffer(arrayBuffer);
236-
}
237-
238227
setExtUserId(documentData[0]?.ExtUserPtr?.objectId);
239228
const isCompleted =
240229
documentData[0].IsCompleted && documentData[0].IsCompleted;
@@ -642,9 +631,32 @@ function PdfRequestFiles() {
642631
setWidgetsTour(true);
643632
} else {
644633
setIsUiLoading(true);
634+
645635
const pngUrl = checkUser[0].placeHolder;
636+
let pdfArrBuffer;
637+
//`contractDocument` function used to get updated SignedUrl
638+
//resolved issue of sign document by multiple signers simultaneously
639+
const documentData = await contractDocument(documentId);
640+
if (documentData && documentData.length > 0) {
641+
const url = documentData[0]?.SignedUrl || documentData[0]?.URL;
642+
//convert document url in array buffer format to use embed widgets in pdf using pdf-lib
643+
const arrayBuffer = await convertPdfArrayBuffer(url);
644+
if (arrayBuffer === "Error") {
645+
setHandleError("Error: invalid document!");
646+
} else {
647+
pdfArrBuffer = arrayBuffer;
648+
}
649+
} else if (
650+
documentData === "Error: Something went wrong!" ||
651+
(documentData.result && documentData.result.error)
652+
) {
653+
setHandleError("Error: Something went wrong!");
654+
} else {
655+
setHandleError("Document not Found!");
656+
}
657+
646658
// Load a PDFDocument from the existing PDF bytes
647-
const existingPdfBytes = pdfArrayBuffer;
659+
const existingPdfBytes = pdfArrBuffer;
648660
try {
649661
const pdfDoc = await PDFDocument.load(existingPdfBytes);
650662
const isSignYourSelfFlow = false;

0 commit comments

Comments
 (0)