diff --git a/apps/OpenSign/src/components/pdf/PdfHeader.js b/apps/OpenSign/src/components/pdf/PdfHeader.js
index 896072f8e..eeac61ee3 100644
--- a/apps/OpenSign/src/components/pdf/PdfHeader.js
+++ b/apps/OpenSign/src/components/pdf/PdfHeader.js
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
import PrevNext from "./PrevNext";
import printModule from "print-js";
import { getBase64FromUrl } from "../../constant/Utils";
@@ -7,8 +7,9 @@ import "../../styles/signature.css";
import * as DropdownMenu from "@radix-ui/react-dropdown-menu";
import { useNavigate } from "react-router-dom";
import { themeColor } from "../../constant/const";
-import Certificate from "./Certificate";
-import { PDFDownloadLink } from "@react-pdf/renderer";
+import axios from "axios";
+import ModalUi from "../../primitives/ModalUi";
+import Parse from "parse";
function Header({
isPdfRequestFiles,
@@ -39,6 +40,7 @@ function Header({
signerPos && signerPos?.filter((data) => data.Role !== "prefill");
const isMobile = window.innerWidth < 767;
const navigate = useNavigate();
+ const [isCertificate, setIsCertificate] = useState(false);
const isGuestSigner = localStorage.getItem("isGuestSigner");
//for go to previous page
function previousPage() {
@@ -61,30 +63,43 @@ function Header({
const handleToPrint = async (event) => {
event.preventDefault();
- const pdf = await getBase64FromUrl(pdfUrl);
- const isAndroidDevice = navigator.userAgent.match(/Android/i);
- const isAppleDevice =
- (/iPad|iPhone|iPod/.test(navigator.platform) ||
- (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1)) &&
- !window.MSStream;
- if (isAndroidDevice || isAppleDevice) {
- const byteArray = Uint8Array.from(
- atob(pdf)
- .split("")
- .map((char) => char.charCodeAt(0))
- );
- const blob = new Blob([byteArray], { type: "application/pdf" });
- const blobUrl = URL.createObjectURL(blob);
- window.open(blobUrl, "_blank");
- } else {
- printModule({ printable: pdf, type: "pdf", base64: true });
+ try {
+ const url = await Parse.Cloud.run("getsignedurl", { url: pdfUrl });
+ const pdf = await getBase64FromUrl(url);
+ const isAndroidDevice = navigator.userAgent.match(/Android/i);
+ const isAppleDevice =
+ (/iPad|iPhone|iPod/.test(navigator.platform) ||
+ (navigator.platform === "MacIntel" &&
+ navigator.maxTouchPoints > 1)) &&
+ !window.MSStream;
+ if (isAndroidDevice || isAppleDevice) {
+ const byteArray = Uint8Array.from(
+ atob(pdf)
+ .split("")
+ .map((char) => char.charCodeAt(0))
+ );
+ const blob = new Blob([byteArray], { type: "application/pdf" });
+ const blobUrl = URL.createObjectURL(blob);
+ window.open(blobUrl, "_blank");
+ } else {
+ printModule({ printable: pdf, type: "pdf", base64: true });
+ }
+ } catch (err) {
+ console.log("err in getsignedurl", err);
+ alert("something went wrong, please try again later.");
}
};
//handle download signed pdf
- const handleDownloadPdf = () => {
+ const handleDownloadPdf = async () => {
const pdfName = pdfDetails[0] && pdfDetails[0].Name;
- saveAs(pdfUrl, `${sanitizeFileName(pdfName)}_signed_by_OpenSign™.pdf`);
+ try {
+ const url = await Parse.Cloud.run("getsignedurl", { url: pdfUrl });
+ saveAs(url, `${sanitizeFileName(pdfName)}_signed_by_OpenSign™.pdf`);
+ } catch (err) {
+ console.log("err in getsignedurl", err);
+ alert("something went wrong, please try again later.");
+ }
};
const sanitizeFileName = (pdfName) => {
@@ -102,55 +117,41 @@ function Header({
} catch (err) {
console.log("err in download in certificate", err);
}
+ } else {
+ setIsCertificate(true);
+ try {
+ const data = {
+ docId: pdfDetails[0]?.objectId
+ };
+ const docDetails = await axios.post(
+ `${localStorage.getItem("baseUrl")}functions/getDocument`,
+ data,
+ {
+ headers: {
+ "Content-Type": "application/json",
+ "X-Parse-Application-Id": localStorage.getItem("parseAppId"),
+ sessionToken: localStorage.getItem("accesstoken")
+ }
+ }
+ );
+ if (docDetails.data && docDetails.data.result) {
+ const doc = docDetails.data.result;
+ if (doc?.CertificateUrl) {
+ await fetch(doc?.CertificateUrl);
+ const certificateUrl = doc?.CertificateUrl;
+ saveAs(certificateUrl, `Certificate_signed_by_OpenSign™.pdf`);
+ setIsCertificate(false);
+ } else {
+ setIsCertificate(true);
+ }
+ }
+ } catch (err) {
+ console.log("err in download in certificate", err);
+ alert("something went wrong, please try again later.");
+ }
}
};
- const GenerateCertificate = () => {
- //after generate download certifcate pdf
- const handleDownload = (pdfBlob, fileName) => {
- if (pdfBlob) {
- const url = window.URL.createObjectURL(pdfBlob);
- // Create a temporary anchor element
- const link = document.createElement("a");
- link.href = url;
- link.download = fileName;
- // Append the anchor to the body
- document.body.appendChild(link);
- // Programmatically click the anchor to trigger the download
- link.click();
- // Remove the anchor from the body
- document.body.removeChild(link);
- // Release the object URL to free up resources
- window.URL.revokeObjectURL(url);
- }
- };
-
- return (
-