From c43690faa8df16c0d9199a9b0d57dec36f05eca7 Mon Sep 17 00:00:00 2001 From: Rishab <33950743+rishabjasrotia@users.noreply.github.com> Date: Thu, 16 Nov 2023 04:08:12 +0000 Subject: [PATCH 1/8] #126 - Fix UI layout issue after signing a document from mobile --- microfrontends/SignDocuments/src/css/signature.css | 1 - 1 file changed, 1 deletion(-) diff --git a/microfrontends/SignDocuments/src/css/signature.css b/microfrontends/SignDocuments/src/css/signature.css index 273b6990e..e2cebe9f3 100644 --- a/microfrontends/SignDocuments/src/css/signature.css +++ b/microfrontends/SignDocuments/src/css/signature.css @@ -629,7 +629,6 @@ option { /* The sticky class is added to the navbar with JS when it reaches its scroll position */ .stickyHead { - position: fixed; top: 50px; left: 0.9rem; } From 6d2010facb3cc6fae53a4c1f2a25281fc185ea51 Mon Sep 17 00:00:00 2001 From: RaktimaNXG Date: Thu, 16 Nov 2023 10:59:26 +0530 Subject: [PATCH 2/8] fix transparent PNG signature issue --- .../src/Component/PdfRequestFiles.js | 70 +++++------------- .../src/Component/SignYourselfPdf.js | 49 ++----------- .../src/Component/recipientSignPdf.js | 71 +++++-------------- .../SignDocuments/src/utils/Utils.js | 33 +++++++-- 4 files changed, 72 insertions(+), 151 deletions(-) diff --git a/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js b/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js index d741162d5..400f69930 100644 --- a/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js +++ b/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js @@ -11,7 +11,11 @@ import { HTML5Backend } from "react-dnd-html5-backend"; import { useParams } from "react-router-dom"; import SignPad from "./component/signPad"; import RenderAllPdfPage from "./component/renderAllPdfPage"; -import { getBase64FromIMG, getBase64FromUrl } from "../utils/Utils"; +import { + convertPNGtoJPEG, + getBase64FromIMG, + getBase64FromUrl +} from "../utils/Utils"; import Loader from "./component/loader"; import HandleError from "./component/HandleError"; import Nodata from "./component/Nodata"; @@ -367,31 +371,6 @@ function PdfRequestFiles() { ImgUrl = await getBase64FromIMG(ImgUrl + "?get"); } //function for called convert png signatre to jpeg in base 64 - const convertPNGtoJPEG = (base64Data) => { - return new Promise((resolve, reject) => { - const canvas = document.createElement("canvas"); - const img = new Image(); - img.src = base64Data; - - img.onload = () => { - canvas.width = img.width; - canvas.height = img.height; - - const ctx = canvas.getContext("2d"); - ctx.drawImage(img, 0, 0); - - // Convert to JPEG by using the canvas.toDataURL() method - const jpegBase64Data = canvas.toDataURL("image/jpeg"); - - resolve(jpegBase64Data); - }; - - img.onerror = (error) => { - reject(error); - }; - }); - }; - convertPNGtoJPEG(ImgUrl) .then((jpegBase64Data) => { const removeBase64Fromjpeg = "data:image/jpeg;base64,"; @@ -447,32 +426,21 @@ function PdfRequestFiles() { const images = await Promise.all( imgUrlList.map(async (url) => { let signUrl = url.SignUrl; - + if (url.ImageType === "image/png") { + //function for convert signature png base64 url to jpeg base64 + const newUrl = await convertPNGtoJPEG(signUrl); + signUrl = newUrl; + } const checkUrl = url.SignUrl.includes("https:"); if (checkUrl) { signUrl = signUrl + "?get"; } const res = await fetch(signUrl); - return res.arrayBuffer(); }) ); images.forEach(async (imgData, id) => { - let img; - if ( - imgUrlList[id].ImageType && - imgUrlList[id].ImageType === "image/jpeg" - ) { - img = await pdfDoc.embedJpg(imgData); - } else if ( - imgUrlList[id].ImageType && - imgUrlList[id].ImageType === "image/png" - ) { - img = await pdfDoc.embedPng(imgData); - } else { - img = await pdfDoc.embedPng(imgData); - } - + let img = await pdfDoc.embedJpg(imgData); const imgHeight = imgUrlList[id].Height ? imgUrlList[id].Height : 60; @@ -600,8 +568,8 @@ function PdfRequestFiles() { yPosition = pos.isDrag ? y * scale - height : pos.firstYPos - ? y * scale - height + pos.firstYPos - : y * scale - height; + ? y * scale - height + pos.firstYPos + : y * scale - height; return yPosition; } else { const y = pos.yBottom / scale; @@ -609,8 +577,8 @@ function PdfRequestFiles() { yPosition = pos.isDrag ? y * scale - height : pos.firstYPos - ? y * scale - height + pos.firstYPos - : y * scale - height; + ? y * scale - height + pos.firstYPos + : y * scale - height; return yPosition; } } else { @@ -621,15 +589,15 @@ function PdfRequestFiles() { yPosition = pos.isDrag ? y - height : pos.firstYPos - ? y - height + pos.firstYPos - : y - height; + ? y - height + pos.firstYPos + : y - height; return yPosition; } else { yPosition = pos.isDrag ? pos.yBottom - height : pos.firstYPos - ? pos.yBottom - height + pos.firstYPos - : pos.yBottom - height; + ? pos.yBottom - height + pos.firstYPos + : pos.yBottom - height; return yPosition; } } diff --git a/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js b/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js index 6591667bc..0f7de9a65 100644 --- a/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js +++ b/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js @@ -15,7 +15,7 @@ import EmailComponent from "./component/emailComponent"; import FieldsComponent from "./component/fieldsComponent"; import Modal from "react-bootstrap/Modal"; import ModalHeader from "react-bootstrap/esm/ModalHeader"; -import { getBase64FromIMG } from "../utils/Utils"; +import { convertPNGtoJPEG, getBase64FromIMG } from "../utils/Utils"; import { useParams } from "react-router-dom"; import Tour from "reactour"; import { onSaveImage, onSaveSign } from "../utils/Utils"; @@ -466,33 +466,7 @@ function SignYourSelf() { if (checkUrl) { ImgUrl = await getBase64FromIMG(ImgUrl + "?get"); } - //function for convert signature png base64 url to jpeg base64 - const convertPNGtoJPEG = (base64Data) => { - return new Promise((resolve, reject) => { - const canvas = document.createElement("canvas"); - const img = new Image(); - img.src = base64Data; - - img.onload = () => { - canvas.width = img.width; - canvas.height = img.height; - - const ctx = canvas.getContext("2d"); - ctx.drawImage(img, 0, 0); - - // Convert to JPEG by using the canvas.toDataURL() method - const jpegBase64Data = canvas.toDataURL("image/jpeg"); - - resolve(jpegBase64Data); - }; - - img.onerror = (error) => { - reject(error); - }; - }); - }; - convertPNGtoJPEG(ImgUrl) .then((jpegBase64Data) => { const removeBase64Fromjpeg = "data:image/jpeg;base64,"; @@ -540,6 +514,11 @@ function SignYourSelf() { imgUrlList.map(async (url) => { let signUrl = url.SignUrl; + if (url.ImageType === "image/png") { + //function for convert signature png base64 url to jpeg base64 + const newUrl = await convertPNGtoJPEG(signUrl); + signUrl = newUrl; + } const checkUrl = url.SignUrl.includes("https:"); if (checkUrl) { signUrl = signUrl + "?get"; @@ -550,21 +529,7 @@ function SignYourSelf() { }) ); images.forEach(async (imgData, id) => { - let img; - if ( - imgUrlList[id].ImageType && - imgUrlList[id].ImageType === "image/jpeg" - ) { - img = await pdfDoc.embedJpg(imgData); - } else if ( - imgUrlList[id].ImageType && - imgUrlList[id].ImageType === "image/png" - ) { - img = await pdfDoc.embedPng(imgData); - } else { - img = await pdfDoc.embedPng(imgData); - } - + let img = await pdfDoc.embedJpg(imgData); const imgHeight = imgUrlList[id].Height ? imgUrlList[id].Height : 60; diff --git a/microfrontends/SignDocuments/src/Component/recipientSignPdf.js b/microfrontends/SignDocuments/src/Component/recipientSignPdf.js index 77b3de40e..53c822e85 100644 --- a/microfrontends/SignDocuments/src/Component/recipientSignPdf.js +++ b/microfrontends/SignDocuments/src/Component/recipientSignPdf.js @@ -14,7 +14,8 @@ import DefaultSignature from "./component/defaultSignature"; import { getBase64FromUrl, getBase64FromIMG, - contactBookName + contactBookName, + convertPNGtoJPEG } from "../utils/Utils"; import Tour from "reactour"; import Signedby from "./component/signedby"; @@ -450,32 +451,7 @@ function EmbedPdfImage() { if (checkUrl) { ImgUrl = await getBase64FromIMG(ImgUrl + "?get"); } - //function for called convert png signatre to jpeg in base 64 - const convertPNGtoJPEG = (base64Data) => { - return new Promise((resolve, reject) => { - const canvas = document.createElement("canvas"); - const img = new Image(); - img.src = base64Data; - - img.onload = () => { - canvas.width = img.width; - canvas.height = img.height; - - const ctx = canvas.getContext("2d"); - ctx.drawImage(img, 0, 0); - - // Convert to JPEG by using the canvas.toDataURL() method - const jpegBase64Data = canvas.toDataURL("image/jpeg"); - - resolve(jpegBase64Data); - }; - - img.onerror = (error) => { - reject(error); - }; - }); - }; - + //function for convert signature png base64 url to jpeg base64 convertPNGtoJPEG(ImgUrl) .then((jpegBase64Data) => { const removeBase64Fromjpeg = "data:image/jpeg;base64,"; @@ -522,6 +498,11 @@ function EmbedPdfImage() { const images = await Promise.all( imgUrlList.map(async (url) => { let signUrl = url.SignUrl; + if (url.ImageType === "image/png") { + //function for convert signature png base64 url to jpeg base64 + const newUrl = await convertPNGtoJPEG(signUrl); + signUrl = newUrl; + } const checkUrl = url.SignUrl.includes("https:"); if (checkUrl) { signUrl = signUrl + "?get"; @@ -532,20 +513,7 @@ function EmbedPdfImage() { }) ); images.forEach(async (imgData, id) => { - let img; - if ( - imgUrlList[id].ImageType && - imgUrlList[id].ImageType === "image/jpeg" - ) { - img = await pdfDoc.embedJpg(imgData); - } else if ( - imgUrlList[id].ImageType && - imgUrlList[id].ImageType === "image/png" - ) { - img = await pdfDoc.embedPng(imgData); - } else { - img = await pdfDoc.embedPng(imgData); - } + let img = await pdfDoc.embedJpg(imgData); const imgHeight = imgUrlList[id].Height ? imgUrlList[id].Height @@ -662,8 +630,8 @@ function EmbedPdfImage() { yPosition = pos.isDrag ? y * scale - height : pos.firstYPos - ? y * scale - height + pos.firstYPos - : y * scale - height; + ? y * scale - height + pos.firstYPos + : y * scale - height; return yPosition; } else { const y = pos.yBottom / scale; @@ -671,8 +639,8 @@ function EmbedPdfImage() { yPosition = pos.isDrag ? y * scale - height : pos.firstYPos - ? y * scale - height + pos.firstYPos - : y * scale - height; + ? y * scale - height + pos.firstYPos + : y * scale - height; return yPosition; } } else { @@ -683,15 +651,15 @@ function EmbedPdfImage() { yPosition = pos.isDrag ? y - height : pos.firstYPos - ? y - height + pos.firstYPos - : y - height; + ? y - height + pos.firstYPos + : y - height; return yPosition; } else { yPosition = pos.isDrag ? pos.yBottom - height : pos.firstYPos - ? pos.yBottom - height + pos.firstYPos - : pos.yBottom - height; + ? pos.yBottom - height + pos.firstYPos + : pos.yBottom - height; return yPosition; } } @@ -1083,7 +1051,7 @@ function EmbedPdfImage() { isShowHeader={true} currentSigner={true} decline={true} - alreadySign={pdfUrl ? true :false} + alreadySign={pdfUrl ? true : false} /> )} - ); } -export default EmbedPdfImage; \ No newline at end of file +export default EmbedPdfImage; diff --git a/microfrontends/SignDocuments/src/utils/Utils.js b/microfrontends/SignDocuments/src/utils/Utils.js index 0b915423d..c2a87df1f 100644 --- a/microfrontends/SignDocuments/src/utils/Utils.js +++ b/microfrontends/SignDocuments/src/utils/Utils.js @@ -28,13 +28,35 @@ export async function getBase64FromIMG(url) { }; }); } +//function for convert signature png base64 url to jpeg base64 +export const convertPNGtoJPEG = (base64Data) => { + return new Promise((resolve, reject) => { + const canvas = document.createElement("canvas"); + const img = new Image(); + img.src = base64Data; + + img.onload = () => { + canvas.width = img.width; + canvas.height = img.height; + + const ctx = canvas.getContext("2d"); + ctx.fillStyle = "#ffffff"; // white color + ctx.fillRect(0, 0, canvas.width, canvas.height); + ctx.drawImage(img, 0, 0); + // Convert to JPEG by using the canvas.toDataURL() method + const jpegBase64Data = canvas.toDataURL("image/jpeg"); + + resolve(jpegBase64Data); + }; + + img.onerror = (error) => { + reject(error); + }; + }); +}; export function getHostUrl() { const hostUrl = window.location.href; - /// const hostUrl = "https://contracts-defaultssty.qik.ai/#/mf/remoteUrl=aHR0cHM6Ly9xaWstYWktb3JnLmdpdGh1Yi5pby9TaWduLU1pY3JvYXBwVjIvcmVtb3RlRW50cnkuanM=&moduleToLoad=AppRoutes&remoteName=signmicroapp/legadrive"; - // const hostUrl = "https://contracts-defaultssty.qik.ai/#/" - // const hostUrl = "https://lionfish-app-75ly7.ondigitalocean.app/mf/remoteUrl=aHR0cHM6Ly9xaWstYWktb3JnLmdpdGh1Yi5pby9TaWduLU1pY3JvYXBwVjIvcmVtb3RlRW50cnkuanM=&moduleToLoad=AppRoutes&remoteName=signmicroapp/legadrive" - //const hostUrl = "https://app.opensignlabs.com/rpmf/remoteUrl=aHR0cHM6Ly9xaWstYWktb3JnLmdpdGh1Yi5pby9TaWduLU1pY3JvYXBwVjIvcmVtb3RlRW50cnkuanM=&moduleToLoad=AppRoutes&remoteName=signmicroapp/draftDocument"; if (hostUrl) { const urlSplit = hostUrl.split("/"); @@ -57,7 +79,6 @@ export function onSaveImage(xyPostion, index, signKey, imgWH, image) { (data, ind) => data.key === signKey && data.Width && data.Height && data.SignUrl ); - if (updateFilter.length > 0) { let newWidth, newHeight; @@ -139,7 +160,7 @@ export function onSaveImage(xyPostion, index, signKey, imgWH, image) { ...url, Width: getPosData[0].Width ? getPosData[0].Width : newWidth, Height: getPosData[0].Height ? getPosData[0].Height : newHeight, - SignUrl: image.src, + SignUrl: image.src, ImageType: image.imgType }; } From 87c65e4beab98b9660fd0a8058a24ca3f050c025 Mon Sep 17 00:00:00 2001 From: Rishab <33950743+rishabjasrotia@users.noreply.github.com> Date: Wed, 22 Nov 2023 06:20:02 +0000 Subject: [PATCH 3/8] #204 - Fix issue due to Signature URL validation --- microfrontends/SignDocuments/package-lock.json | 9 +++++++++ microfrontends/SignDocuments/package.json | 1 + .../SignDocuments/src/Component/PdfRequestFiles.js | 7 ++++--- .../SignDocuments/src/Component/SignYourselfPdf.js | 6 +++--- .../SignDocuments/src/Component/recipientSignPdf.js | 7 ++++--- microfrontends/SignDocuments/src/utils/Utils.js | 6 ++++++ 6 files changed, 27 insertions(+), 9 deletions(-) diff --git a/microfrontends/SignDocuments/package-lock.json b/microfrontends/SignDocuments/package-lock.json index 30f707e44..d087684f9 100644 --- a/microfrontends/SignDocuments/package-lock.json +++ b/microfrontends/SignDocuments/package-lock.json @@ -36,6 +36,7 @@ "react-scrollbars-custom": "^4.1.1", "react-signature-canvas": "^1.0.6", "reactour": "^1.19.1", + "validator": "^13.11.0", "web-vitals": "^2.1.4" } }, @@ -20502,6 +20503,14 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, + "node_modules/validator": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", + "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "engines": { + "node": ">= 0.10" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/microfrontends/SignDocuments/package.json b/microfrontends/SignDocuments/package.json index 97970e988..8389bf007 100644 --- a/microfrontends/SignDocuments/package.json +++ b/microfrontends/SignDocuments/package.json @@ -32,6 +32,7 @@ "react-scrollbars-custom": "^4.1.1", "react-signature-canvas": "^1.0.6", "reactour": "^1.19.1", + "validator": "^13.11.0", "web-vitals": "^2.1.4" }, "scripts": { diff --git a/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js b/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js index bfcfd7cb3..214999207 100644 --- a/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js +++ b/microfrontends/SignDocuments/src/Component/PdfRequestFiles.js @@ -14,7 +14,8 @@ import RenderAllPdfPage from "./component/renderAllPdfPage"; import { contractDocument, getBase64FromIMG, - getBase64FromUrl + getBase64FromUrl, + urlValidator } from "../utils/Utils"; import Loader from "./component/loader"; import HandleError from "./component/HandleError"; @@ -346,7 +347,7 @@ function PdfRequestFiles() { imgUrlList.map(async (data) => { //cheking signUrl is defau;t signature url of custom url let ImgUrl = data.SignUrl; - const checkUrl = ImgUrl.includes("https:"); + const checkUrl = urlValidator(ImgUrl); //if default signature url then convert it in base 64 if (checkUrl) { @@ -434,7 +435,7 @@ function PdfRequestFiles() { imgUrlList.map(async (url) => { let signUrl = url.SignUrl; - const checkUrl = url.SignUrl.includes("https:"); + const checkUrl = urlValidator(signUrl); if (checkUrl) { signUrl = signUrl + "?get"; } diff --git a/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js b/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js index 2b5eebdc8..9044b38d9 100644 --- a/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js +++ b/microfrontends/SignDocuments/src/Component/SignYourselfPdf.js @@ -24,7 +24,7 @@ import HandleError from "./component/HandleError"; import Nodata from "./component/Nodata"; import Header from "./component/header"; import RenderPdf from "./component/renderPdf"; -import { contractUsers, contactBook } from "../utils/Utils"; +import { contractUsers, contactBook, urlValidator } from "../utils/Utils"; //For signYourself inProgress section signer can add sign and complete doc sign. function SignYourSelf() { const [pdfDetails, setPdfDetails] = useState([]); @@ -444,7 +444,7 @@ function SignYourSelf() { imgUrlList.map(async (data) => { let ImgUrl = data.SignUrl; //cheking signUrl is defau;t signature url of custom url - const checkUrl = ImgUrl.includes("https:"); + const checkUrl = urlValidator(ImgUrl); //if default signature url then convert it in base 64 if (checkUrl) { @@ -524,7 +524,7 @@ function SignYourSelf() { imgUrlList.map(async (url) => { let signUrl = url.SignUrl; - const checkUrl = url.SignUrl.includes("https:"); + const checkUrl = urlValidator(signUrl); if (checkUrl) { signUrl = signUrl + "?get"; } diff --git a/microfrontends/SignDocuments/src/Component/recipientSignPdf.js b/microfrontends/SignDocuments/src/Component/recipientSignPdf.js index 0b9a106c9..840db9409 100644 --- a/microfrontends/SignDocuments/src/Component/recipientSignPdf.js +++ b/microfrontends/SignDocuments/src/Component/recipientSignPdf.js @@ -16,7 +16,8 @@ import { getBase64FromIMG, contractUsers, contactBook, - contractDocument + contractDocument, + urlValidator } from "../utils/Utils"; import Tour from "reactour"; import Signedby from "./component/signedby"; @@ -445,7 +446,7 @@ function EmbedPdfImage() { imgUrlList.map(async (data) => { //cheking signUrl is defau;t signature url of custom url let ImgUrl = data.SignUrl; - const checkUrl = ImgUrl.includes("https:"); + const checkUrl = urlValidator(ImgUrl); //if default signature url then convert it in base 64 if (checkUrl) { @@ -523,7 +524,7 @@ function EmbedPdfImage() { const images = await Promise.all( imgUrlList.map(async (url) => { let signUrl = url.SignUrl; - const checkUrl = url.SignUrl.includes("https:"); + const checkUrl = urlValidator(signUrl); if (checkUrl) { signUrl = signUrl + "?get"; } diff --git a/microfrontends/SignDocuments/src/utils/Utils.js b/microfrontends/SignDocuments/src/utils/Utils.js index ecf6d0359..0413c7d87 100644 --- a/microfrontends/SignDocuments/src/utils/Utils.js +++ b/microfrontends/SignDocuments/src/utils/Utils.js @@ -1,4 +1,5 @@ import axios from "axios"; +import validator from 'validator'; export async function getBase64FromUrl(url) { const data = await fetch(url); @@ -299,3 +300,8 @@ export const contactBook = async (objectId) => { }); return result; }; + +// function for validating URLs +export function urlValidator(url) { + return validator.isURL(url); +}; \ No newline at end of file From 1b3508a9ef34ce454e3637201cf2c9d2a340e39c Mon Sep 17 00:00:00 2001 From: rishabjasrotia Date: Wed, 22 Nov 2023 18:57:18 +0530 Subject: [PATCH 4/8] Replace npm package with manual valiadation --- microfrontends/SignDocuments/package-lock.json | 9 --------- microfrontends/SignDocuments/package.json | 1 - microfrontends/SignDocuments/src/utils/Utils.js | 8 ++++++-- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/microfrontends/SignDocuments/package-lock.json b/microfrontends/SignDocuments/package-lock.json index d087684f9..30f707e44 100644 --- a/microfrontends/SignDocuments/package-lock.json +++ b/microfrontends/SignDocuments/package-lock.json @@ -36,7 +36,6 @@ "react-scrollbars-custom": "^4.1.1", "react-signature-canvas": "^1.0.6", "reactour": "^1.19.1", - "validator": "^13.11.0", "web-vitals": "^2.1.4" } }, @@ -20503,14 +20502,6 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, - "node_modules/validator": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", - "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", diff --git a/microfrontends/SignDocuments/package.json b/microfrontends/SignDocuments/package.json index 8389bf007..97970e988 100644 --- a/microfrontends/SignDocuments/package.json +++ b/microfrontends/SignDocuments/package.json @@ -32,7 +32,6 @@ "react-scrollbars-custom": "^4.1.1", "react-signature-canvas": "^1.0.6", "reactour": "^1.19.1", - "validator": "^13.11.0", "web-vitals": "^2.1.4" }, "scripts": { diff --git a/microfrontends/SignDocuments/src/utils/Utils.js b/microfrontends/SignDocuments/src/utils/Utils.js index 0413c7d87..f7d42f214 100644 --- a/microfrontends/SignDocuments/src/utils/Utils.js +++ b/microfrontends/SignDocuments/src/utils/Utils.js @@ -1,5 +1,4 @@ import axios from "axios"; -import validator from 'validator'; export async function getBase64FromUrl(url) { const data = await fetch(url); @@ -303,5 +302,10 @@ export const contactBook = async (objectId) => { // function for validating URLs export function urlValidator(url) { - return validator.isURL(url); + try { + const newUrl = new URL(url); + return newUrl.protocol === 'http:' || newUrl.protocol === 'https:'; + } catch (err) { + return false; + } }; \ No newline at end of file From 01e19632a9b5cac418b5849cbd265afa0f52e2c5 Mon Sep 17 00:00:00 2001 From: Amol Date: Thu, 23 Nov 2023 17:49:43 +0530 Subject: [PATCH 5/8] fix: syntax issue --- microfrontends/SignDocuments/src/Component/recipientSignPdf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microfrontends/SignDocuments/src/Component/recipientSignPdf.js b/microfrontends/SignDocuments/src/Component/recipientSignPdf.js index 09a9ece88..801a30a54 100644 --- a/microfrontends/SignDocuments/src/Component/recipientSignPdf.js +++ b/microfrontends/SignDocuments/src/Component/recipientSignPdf.js @@ -15,7 +15,7 @@ import { getBase64FromUrl, getBase64FromIMG, contactBookName, - convertPNGtoJPEG + convertPNGtoJPEG, contractUsers, contactBook, contractDocument, From 6c579178c0e262c8e6eb273ada4921e4f1cb9a1d Mon Sep 17 00:00:00 2001 From: Amol Date: Thu, 23 Nov 2023 17:51:10 +0530 Subject: [PATCH 6/8] chore: syntax issue --- microfrontends/SignDocuments/src/utils/Utils.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/microfrontends/SignDocuments/src/utils/Utils.js b/microfrontends/SignDocuments/src/utils/Utils.js index ecbc34304..53212f8ae 100644 --- a/microfrontends/SignDocuments/src/utils/Utils.js +++ b/microfrontends/SignDocuments/src/utils/Utils.js @@ -330,6 +330,7 @@ export function urlValidator(url) { return newUrl.protocol === 'http:' || newUrl.protocol === 'https:'; } catch (err) { return false; + } export const modalAlign = () => { let modalDialog = $('.modal-dialog').getBoundingClientRect(); let mobileHead = $('.mobileHead').getBoundingClientRect() @@ -339,4 +340,4 @@ export const modalAlign = () => { modal.style.left = leftOffset + 'px'; modal.style.top = (window.innerHeight/3) + 'px'; } -}; \ No newline at end of file +}; From 8619021f304d07726e5ecf5c8469bcbb61ed4fdb Mon Sep 17 00:00:00 2001 From: Amol Date: Thu, 23 Nov 2023 17:57:00 +0530 Subject: [PATCH 7/8] chore: syntax issue --- microfrontends/SignDocuments/src/utils/Utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/microfrontends/SignDocuments/src/utils/Utils.js b/microfrontends/SignDocuments/src/utils/Utils.js index 53212f8ae..40365daa3 100644 --- a/microfrontends/SignDocuments/src/utils/Utils.js +++ b/microfrontends/SignDocuments/src/utils/Utils.js @@ -331,7 +331,7 @@ export function urlValidator(url) { } catch (err) { return false; } -export const modalAlign = () => { +export function modalAlign() { let modalDialog = $('.modal-dialog').getBoundingClientRect(); let mobileHead = $('.mobileHead').getBoundingClientRect() let modal = $('.modal-dialog'); From 23ae72738d3e1dba31071fa8b2b0e99a23b7febc Mon Sep 17 00:00:00 2001 From: Amol Date: Thu, 23 Nov 2023 18:07:22 +0530 Subject: [PATCH 8/8] chore: syntax issue --- microfrontends/SignDocuments/src/utils/Utils.js | 1 + 1 file changed, 1 insertion(+) diff --git a/microfrontends/SignDocuments/src/utils/Utils.js b/microfrontends/SignDocuments/src/utils/Utils.js index 40365daa3..a78fc3e94 100644 --- a/microfrontends/SignDocuments/src/utils/Utils.js +++ b/microfrontends/SignDocuments/src/utils/Utils.js @@ -331,6 +331,7 @@ export function urlValidator(url) { } catch (err) { return false; } +} export function modalAlign() { let modalDialog = $('.modal-dialog').getBoundingClientRect(); let mobileHead = $('.mobileHead').getBoundingClientRect()