import React from "react"; import RSC from "react-scrollbars-custom"; import Toast from "react-bootstrap/Toast"; import { Rnd } from "react-rnd"; import { themeColor } from "../../utils/ThemeColor/backColor"; import { Document, Page, pdfjs } from "react-pdf"; // import Draggable from "react-draggable"; pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`; function RenderPdf({ pageNumber, pdfOriginalWidth, pdfNewWidth, drop, signerPos, successEmail, nodeRef, handleTabDrag, handleStop, handleImageResize, isDragging, setIsSignPad, setIsStamp, handleDeleteSign, setSignKey, pdfDetails, xyPostion, pdfRef, pdfUrl, numPages, pageDetails, recipient, isAlreadySign, pdfRequest, setCurrentSigner, signerObjectId, signedSigners, setPdfLoadFail, setIsDragging, placeholder, }) { const isMobile = window.innerWidth < 712; const checkSignedSignes = (data) => { // console.log("data",data) const checkSign = signedSigners.filter( (sign) => sign.objectId === data.signerObjId ); if (data.signerObjId === signerObjectId) { setCurrentSigner(true); } return ( checkSign.length === 0 && data.placeHolder.map((placeData, key) => { return ( {placeData.pageNumber === pageNumber && placeData.pos.map((pos, index) => { return pos && pos.SignUrl ? ( { setIsSignPad(true); setSignKey(pos.key); }} >
no img { setIsSignPad(true); setSignKey(pos.key); }} src={pos.SignUrl} style={{ width: "100%", height: "100%", objectFit: "contain", }} />
) : ( { if (data.signerObjId === signerObjectId) { setIsSignPad(true); setSignKey(pos.key); setIsStamp(pos.isStamp); } }} style={{ padding: "0px", cursor: "all-scroll", zIndex: 1, position: "absolute", borderStyle: "dashed", width: "200px", height: "30px", borderColor: themeColor(), background: data.blockColor, textAlign: "center", justifyContent: "center", borderWidth: "0.2px", }} default={{ x: pos.xPosition, y: pos.yPosition, }} size={{ width: pos.Width ? pos.Width : 150, height: pos.Height ? pos.Height : 60, }} lockAspectRatio={pos.Width ? pos.Width / pos.Height : 2.5} >
{pos.isStamp ? "stamp" : "signature"}
); })}
); }) ); }; return ( <> {isMobile ? ( // pdfNewWidth ? pdfNewWidth : pdfOriginalWidth, // height: window.innerHeight - 110 + "px", // marginTop: "50px", // }} // noScrollY={false} // noScrollX={pdfNewWidth < pdfOriginalWidth ? false : true} // >
Email sent successful!
{recipient ? !pdfUrl && !isAlreadySign.mssg && xyPostion.length > 0 && xyPostion.map((data, ind) => { return ( {data.pageNumber === pageNumber && data.pos.map((pos) => { return pos && pos.SignUrl ? ( { setIsSignPad(true); setSignKey(pos.key); }} >
no img { setIsSignPad(true); setSignKey(pos.key); }} src={pos.SignUrl} style={{ width: "100%", height: "100%", objectFit: "contain", }} />
) : ( { setIsSignPad(true); setSignKey(pos.key); setIsStamp(pos.isStamp); }} >
{pos.isStamp ? "stamp" : "signature"}
); })}
); }) : pdfRequest ? signerPos.map((data, key) => { return ( {checkSignedSignes(data)} ); }) : placeholder ? signerPos.map((data, ind) => { return ( {data.placeHolder.map((placeData, index) => { return ( {placeData.pageNumber === pageNumber && placeData.pos.map((pos) => { return ( handleTabDrag(pos.key, data.signerObjId) } size={{ width: pos.Width ? pos.Width : 150, height: pos.Height ? pos.Height : 60, }} lockAspectRatio={ pos.Width ? pos.Width / pos.Height : 2.5 } resizeHandleStyles={{ bottom: { display: "none" }, right: { display: "none" }, bottomRight: { display: "block" }, }} onDragStop={handleStop} default={{ x: pos.xPosition, y: pos.yPosition, }} onResize={( e, direction, ref, delta, position ) => { handleImageResize( ref, pos.key, data.signerObjId, position ); }} >
{ e.stopPropagation(); handleDeleteSign( pos.key, data.signerObjId ); }} // onClick={(e) => { // e.stopPropagation(); // handleDeleteSign( // pos.key, // data.signerObjId // ); // }} style={{ position: "absolute", right: 0, display: "inline-block", background: themeColor(), cursor: "pointer", padding: "0px 10px", zIndex: 10, }} > x
{pos.isStamp ? "stamp" : "signature"}
); })}
); })}
); }) : xyPostion.map((data, ind) => { return ( {data.pageNumber === pageNumber && data.pos.map((pos) => { return pos && pos.SignUrl ? ( handleTabDrag(pos.key)} onDragStop={handleStop} onResize={(e, direction, ref, delta, position) => { handleImageResize( ref, pos.key, direction, position ); }} > {" "}
{ if (!isDragging) { setTimeout(() => { e.stopPropagation(); setIsSignPad(true); setSignKey(pos.key); setIsStamp(pos.isStamp); }, 500); } }} >
{ e.stopPropagation(); handleDeleteSign(pos.key); setIsStamp(false); }} // onClick={(e) => { // e.stopPropagation(); // handleDeleteSign(pos.key); // setIsStamp(false); // }} style={{ position: "absolute", right: 0, display: "inline-block", background: themeColor(), cursor: "pointer", padding: "0px 10px", }} > x
signimg { setSignKey(pos.key); setIsSignPad(true); setIsStamp(pos.isStamp); }} src={pos.SignUrl} style={{ width: "100%", height: "100%", objectFit: "contain", }} />
) : ( <> { handleTabDrag(pos.key, e); }} // onMouseUp={(e) => handleTabDrag(pos.key, e)} onDragStop={handleStop} size={{ width: pos.Width ? pos.Width : 150, height: pos.Height ? pos.Height : 60, }} // onMouseDown={(e) => { // if (!isDragging) { // console.log("child m=event",isDragging); // setTimeout(() => { // if(isDeleted){ // setIsSignPad(true); // // setIsSignPad(false) // setSignKey(pos.key); // setIsStamp(pos.isStamp); // }else{ // setIsSignPad(true); // // setIsSignPad(false) // setSignKey(pos.key); // setIsStamp(pos.isStamp); // } // }, 500); // } // }} default={{ x: pos.xPosition, y: pos.yPosition, }} // onClick={(e) => { // if (!isDragging) { // e.stopPropagation(); // setIsSignPad(true); // setSignKey(pos.key); // setIsStamp(pos.isStamp); // } // }} >
{ if (!isDragging) { setTimeout(() => { setIsSignPad(true); //setIsSignPad(false) setSignKey(pos.key); setIsStamp(pos.isStamp); }, 500); } }} className="dragElm" style={{ padding: "0px", cursor: "all-scroll", zIndex: 20, position: "absolute", borderStyle: "dashed", width: "150px", height: "60px", borderColor: themeColor(), background: "#daebe0", textAlign: "center", justifyContent: "center", borderWidth: "0.2px", overflow: "hidden", }} >
{ // console.log("child m=event") // e.preventDefault(); // setIsDragging(true) // handleDeleteSign(pos.key); // setIsStamp(false); // setTimeout(()=>{ // setIsDragging(false) // },2000) // }} onTouchStart={(e) => { e.stopPropagation(); e.preventDefault(); // setIsDragging(true); handleDeleteSign(pos.key); setIsStamp(false); }} onClick={(e) => { e.stopPropagation(); // Prevent further event propagation }} style={{ position: "absolute", right: 0, display: "inline-block", background: themeColor(), cursor: "pointer", padding: "0px 10px", }} > x
{pos.isStamp ? "stamp" : "signature"}
); })}
); })} {/* this component for render pdf document is in middle of the component */}
{ if (recipient) { setPdfLoadFail(true); } }} onLoadSuccess={pageDetails} ref={pdfRef} file={pdfUrl ? pdfUrl : pdfDetails[0] && pdfDetails[0].URL} // file="https://qikinnovation.ams3.digitaloceanspaces.com/exported_file_2068_2023-08-30T05%3A04%3A26.334Z.pdf" // "https://api.printnode.com/static/test/pdf/multipage.pdf" // {pdfUrl ? pdfUrl : signPdfUrl} > {Array.from(new Array(numPages), (el, index) => ( { console.log("annotation error", error); }} /> ))}
) : ( //
pdfNewWidth ? pdfNewWidth : pdfOriginalWidth, height: window.innerHeight - 110 + "px", }} noScrollY={false} noScrollX={pdfNewWidth < pdfOriginalWidth ? false : true} >
Email sent successful!
{recipient ? !pdfUrl && !isAlreadySign.mssg && xyPostion.length > 0 && xyPostion.map((data, ind) => { return ( {data.pageNumber === pageNumber && data.pos.map((pos) => { return pos && pos.SignUrl ? ( { setIsSignPad(true); setSignKey(pos.key); }} >
no img { setIsSignPad(true); setSignKey(pos.key); }} src={pos.SignUrl} style={{ width: "100%", height: "100%", objectFit: "contain", }} />
) : ( { setIsSignPad(true); setSignKey(pos.key); setIsStamp(pos.isStamp); }} >
{pos.isStamp ? "stamp" : "signature"}
); })}
); }) : pdfRequest ? signerPos.map((data, key) => { return ( {checkSignedSignes(data)} ); }) : placeholder ? signerPos.map((data, ind) => { return ( {data.placeHolder.map((placeData, index) => { return ( {placeData.pageNumber === pageNumber && placeData.pos.map((pos) => { return ( handleTabDrag(pos.key, data.signerObjId) } size={{ width: pos.Width ? pos.Width : 150, height: pos.Height ? pos.Height : 60, }} lockAspectRatio={ pos.Width ? pos.Width / pos.Height : 2.5 } resizeHandleStyles={{ bottom: { display: "none" }, right: { display: "none" }, bottomRight: { display: "block" }, }} onDragStop={handleStop} default={{ x: pos.xPosition, y: pos.yPosition, }} onResize={( e, direction, ref, delta, position ) => { handleImageResize( ref, pos.key, data.signerObjId, position ); }} >
{ e.stopPropagation(); handleDeleteSign( pos.key, data.signerObjId ); }} style={{ position: "absolute", right: 0, display: "inline-block", background: themeColor(), cursor: "pointer", padding: "0px 10px", zIndex: 10, }} > x
{pos.isStamp ? "stamp" : "signature"}
); })}
); })}
); }) : xyPostion.map((data, ind) => { return ( {data.pageNumber === pageNumber && data.pos.map((pos) => { return pos && pos.SignUrl ? ( handleTabDrag(pos.key)} size={{ width: pos.Width ? pos.Width : 150, height: pos.Height ? pos.Height : 60, }} onDragStop={handleStop} default={{ x: pos.xPosition, y: pos.yPosition, }} onResize={( e, direction, ref, delta, position ) => { handleImageResize( ref, pos.key, direction, position ); }} onClick={() => { if (!isDragging) { setIsSignPad(true); setSignKey(pos.key); setIsStamp(pos.isStamp); } }} >
{ e.stopPropagation(); handleDeleteSign(pos.key); setIsStamp(false); }} style={{ position: "absolute", right: 0, display: "inline-block", background: themeColor(), cursor: "pointer", padding: "0px 10px", }} > x
signimg { setSignKey(pos.key); setIsSignPad(true); setIsStamp(pos.isStamp); }} src={pos.SignUrl} style={{ width: "100%", height: "100%", objectFit: "contain", }} />
) : ( handleTabDrag(pos.key, e)} size={{ width: pos.Width ? pos.Width : 150, height: pos.Height ? pos.Height : 60, }} onDragStop={handleStop} default={{ x: pos.xPosition, y: pos.yPosition, }} >
{ if (!isDragging) { e.stopPropagation(); setIsSignPad(true); setSignKey(pos.key); setIsStamp(pos.isStamp); } }} style={{ cursor: "all-scroll", zIndex: 10, position: "absolute", borderStyle: "dashed", width: "150px", height: "60px", borderColor: themeColor(), background: "#daebe0", textAlign: "center", justifyContent: "center", alignItems: "center", borderWidth: "0.2px", }} >
{ e.stopPropagation(); handleDeleteSign(pos.key); setIsStamp(false); }} style={{ position: "absolute", right: 0, display: "inline-block", background: themeColor(), cursor: "pointer", padding: "0px 10px", }} > x
{pos.isStamp ? "stamp" : "signature"}
); })}
); })} {/* this component for render pdf document is in middle of the component */} { if (recipient) { setPdfLoadFail(true); } }} onLoadSuccess={pageDetails} ref={pdfRef} file={pdfUrl ? pdfUrl : pdfDetails[0] && pdfDetails[0].URL} // file="https://qikinnovation.ams3.digitaloceanspaces.com/exported_file_2068_2023-08-30T05%3A04%3A26.334Z.pdf" // "https://api.printnode.com/static/test/pdf/multipage.pdf" // {pdfUrl ? pdfUrl : signPdfUrl} > {Array.from(new Array(numPages), (el, index) => ( { console.log("annotation error", error); }} /> ))}
)} ); } export default RenderPdf;