@@ -28,7 +28,8 @@ import {
28
28
getDate ,
29
29
textWidget ,
30
30
getTenantDetails ,
31
- checkIsSubscribed
31
+ checkIsSubscribed ,
32
+ convertPdfArrayBuffer
32
33
} from "../constant/Utils" ;
33
34
import { useParams } from "react-router-dom" ;
34
35
import Tour from "reactour" ;
@@ -102,6 +103,7 @@ function SignYourSelf() {
102
103
const [ isDontShow , setIsDontShow ] = useState ( false ) ;
103
104
const [ extUserId , setExtUserId ] = useState ( "" ) ;
104
105
const [ isCompleted , setIsCompleted ] = useState ( false ) ;
106
+ const [ pdfArrayBuffer , setPdfArrayBuffer ] = useState ( "" ) ;
105
107
const divRef = useRef ( null ) ;
106
108
const nodeRef = useRef ( null ) ;
107
109
const [ , drop ] = useDrop ( {
@@ -190,6 +192,14 @@ function SignYourSelf() {
190
192
if ( documentData && documentData . length > 0 ) {
191
193
setPdfDetails ( documentData ) ;
192
194
setExtUserId ( documentData [ 0 ] ?. ExtUserPtr ?. objectId ) ;
195
+ const url = documentData [ 0 ] && documentData [ 0 ] ?. URL ;
196
+ //convert document url in array buffer format to use embed widgets in pdf using pdf-lib
197
+ const arrayBuffer = await convertPdfArrayBuffer ( url ) ;
198
+ if ( arrayBuffer === "Error" ) {
199
+ setHandleError ( "Error: Something went wrong!" ) ;
200
+ } else {
201
+ setPdfArrayBuffer ( arrayBuffer ) ;
202
+ }
193
203
isCompleted = documentData [ 0 ] . IsCompleted && documentData [ 0 ] . IsCompleted ;
194
204
if ( isCompleted ) {
195
205
setIsCompleted ( true ) ;
@@ -255,9 +265,7 @@ function SignYourSelf() {
255
265
setHandleError ( "Error: Something went wrong!" ) ;
256
266
setIsLoading ( loadObj ) ;
257
267
} ) ;
258
-
259
268
const contractUsersRes = await contractUsers ( jsonSender . email ) ;
260
-
261
269
if ( contractUsersRes [ 0 ] && contractUsersRes . length > 0 ) {
262
270
setContractName ( "_Users" ) ;
263
271
setSignerUserId ( contractUsersRes [ 0 ] . objectId ) ;
@@ -561,22 +569,14 @@ function SignYourSelf() {
561
569
setIsCeleb ( false ) ;
562
570
} , 3000 ) ;
563
571
setIsUiLoading ( true ) ;
564
- const url = pdfDetails [ 0 ] && pdfDetails [ 0 ] . URL ;
565
-
566
- const existingPdfBytes = await fetch ( url ) . then ( ( res ) =>
567
- res . arrayBuffer ( )
568
- ) ;
569
-
572
+ const existingPdfBytes = pdfArrayBuffer ;
570
573
// Load a PDFDocument from the existing PDF bytes
571
574
const pdfDoc = await PDFDocument . load ( existingPdfBytes , {
572
575
ignoreEncryption : true
573
576
} ) ;
574
-
575
- const flag = true ;
576
-
577
+ const isSignYourSelfFlow = true ;
577
578
const extUserPtr = pdfDetails [ 0 ] . ExtUserPtr ;
578
579
const HeaderDocId = extUserPtr ?. HeaderDocId ;
579
-
580
580
//embed document's object id to all pages in pdf document
581
581
if ( ! HeaderDocId ) {
582
582
await embedDocId ( pdfDoc , documentId , allPages ) ;
@@ -586,7 +586,7 @@ function SignYourSelf() {
586
586
xyPostion ,
587
587
pdfDoc ,
588
588
pdfOriginalWidth ,
589
- flag ,
589
+ isSignYourSelfFlow ,
590
590
containerWH
591
591
) ;
592
592
// console.log("pdf", pdfBytes);
0 commit comments