import React, { useState } from "react"; import { saveAs } from "file-saver"; import celebration from "../../assests/newCeleb.gif"; import close from "../../assests/close.png"; import Modal from "react-bootstrap/Modal"; import ModalHeader from "react-bootstrap/esm/ModalHeader"; import axios from "axios"; import { getBase64FromUrl } from "../../utils/Utils"; import { themeColor } from "../../utils/ThemeColor/backColor"; import printModule from "print-js"; import loader from "../../assests/loader2.gif"; function EmailComponent({ isEmail, pdfUrl, isCeleb, setIsEmail, setSuccessEmail, pdfName, sender, setIsAlert }) { const [emailList, setEmailList] = useState([]); const [emailValue, setEmailValue] = useState(); const [isLoading, setIsLoading] = useState(false); //function for send email const sendEmail = async () => { setIsLoading(true); let sendMail; for (let i = 0; i < emailList.length; i++) { try { const imgPng = "https://qikinnovation.ams3.digitaloceanspaces.com/logo.png"; // "https://qikinnovation.ams3.digitaloceanspaces.com/mailLogo_2023-08-18T12%3A51%3A31.573Z.png"; let url = `${localStorage.getItem("baseUrl")}functions/sendmailv3/`; const headers = { "Content-Type": "application/json", "X-Parse-Application-Id": localStorage.getItem("parseAppId"), sessionToken: localStorage.getItem("accesstoken") }; const themeBGcolor = themeColor(); let params = { pdfName: pdfName, url: pdfUrl, recipient: emailList[i], subject: `${sender.name} has signed the doc - ${pdfName}`, from: sender.email, html: "

Document Copy

A copy of the document " + pdfName + " Standard is attached to this email. Kindly download the document from the attachment.

This is an automated email from Open Sign. For any queries regarding this email, please contact the sender " + sender.email + " directly. If you think this email is inappropriate or spam, you may file a complaint with Open Sign here.

" }; sendMail = await axios.post(url, params, { headers: headers }); } catch (error) { console.log("error", error); setIsLoading(false); setIsEmail(false); setIsAlert({ isShow: true, alertMessage: "something went wrong" }); } } if (sendMail && sendMail.data.result.status === "success") { setSuccessEmail(true); setTimeout(() => { setSuccessEmail(false); setIsEmail(false); setEmailValue(""); setEmailList([]); }, 1500); setIsLoading(false); } else if (sendMail && sendMail.data.result.status === "error") { setIsLoading(false); setIsEmail(false); setIsAlert({ isShow: true, alertMessage: "something went wrong" }); } else { setIsLoading(false); setIsEmail(false); setIsAlert({ isShow: true, alertMessage: "something went wrong" }); } }; //function for remove email const removeChip = (index) => { const updateEmailCount = emailList.filter((data, key) => key !== index); setEmailList(updateEmailCount); }; //function for get email value const handleEmailValue = (e) => { const value = e.target.value; setEmailValue(value); }; //function for save email in array after press enter const handleEnterPress = (e) => { if (e.key === "Enter" && emailValue) { setEmailList((prev) => [...prev, emailValue]); setEmailValue(""); } else if (e === "add" && emailValue) { setEmailList((prev) => [...prev, emailValue]); setEmailValue(""); } }; // function for print signed pdf 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 }); } }; //handle download signed pdf const handleDownloadPdf = () => { saveAs(pdfUrl, `${sanitizeFileName(pdfName)}_signed_by_OpenSign™.pdf`); }; const sanitizeFileName = (pdfName) => { // Replace spaces with underscore return pdfName.replace(/ /g, "_"); }; const isAndroid = /Android/i.test(navigator.userAgent); return (
{/* isEmail */} {isLoading && (
no img This might take some time
)} Successfully signed!
{!isAndroid && ( )}
{isCeleb && (
print img
)}

Recipients added here will get a copy of the signed document.

{emailList.length > 0 ? ( <>
{emailList.map((data, ind) => { return (
{data} print img removeChip(ind)} src={close} width={10} height={10} style={{ fontWeight: "600", marginLeft: "7px" }} className="emailChipClose" />
); })}
{emailList.length <= 9 && ( )}
) : (
)} { if (emailValue) { handleEnterPress("add"); } }} >
Note: {" "} You can only send to ten recipients at a time.
); } export default EmailComponent;