()
| 76 | |
| 77 | //function generate serverUrl and parseAppId from url and save it in local storage |
| 78 | const handleServerUrl = async () => { |
| 79 | setAppLogo(logo); |
| 80 | const favicon = localStorage.getItem("favicon"); |
| 81 | |
| 82 | localStorage.clear(); // Clears everything |
| 83 | localStorage.setItem("favicon", favicon); |
| 84 | localStorage.setItem( |
| 85 | "appname", |
| 86 | "OpenSign™" |
| 87 | ); |
| 88 | //save isGuestSigner true in local to handle login flow header in mobile view |
| 89 | localStorage.setItem("isGuestSigner", true); |
| 90 | saveLanguageInLocal(i18n); |
| 91 | const parseId = appInfo.appId; |
| 92 | const newServer = `${appInfo.baseUrl}/`; |
| 93 | localStorage.setItem("baseUrl", newServer); |
| 94 | localStorage.setItem("parseAppId", parseId); |
| 95 | //this condition is used decode base64 to string and get userEmail,documentId, contactBoookId data. |
| 96 | if (!id) { |
| 97 | //`atob` function is used to decode base64 |
| 98 | const decodebase64 = atob(base64url); |
| 99 | //split url in array from '/' |
| 100 | const checkSplit = decodebase64.split("/"); |
| 101 | setDocumentId(checkSplit[0]); |
| 102 | setContact((prev) => ({ |
| 103 | ...prev, |
| 104 | email: checkSplit[1]?.toLowerCase()?.replace(/\s/g, "") |
| 105 | })); |
| 106 | setEmail(checkSplit[1]?.toLowerCase()?.replace(/\s/g, "")); |
| 107 | const contactId = checkSplit?.[2]; |
| 108 | setSendmail(checkSplit[3]); |
| 109 | if (!contactId) { |
| 110 | const params = { |
| 111 | email: checkSplit[1]?.toLowerCase()?.replace(/\s/g, ""), |
| 112 | docId: checkSplit[0] |
| 113 | }; |
| 114 | try { |
| 115 | const linkContactRes = await Parse.Cloud.run( |
| 116 | "linkcontacttodoc", |
| 117 | params |
| 118 | ); |
| 119 | setContactId(linkContactRes?.contactId); |
| 120 | await navigateToDoc(checkSplit[0], linkContactRes?.contactId); |
| 121 | } catch (err) { |
| 122 | setIsLoading({ isLoad: false }); |
| 123 | console.log("Err in link ext contact", err); |
| 124 | } |
| 125 | } else { |
| 126 | setContactId(checkSplit[2]); |
| 127 | await navigateToDoc(checkSplit[0], checkSplit[2]); |
| 128 | } |
| 129 | } |
| 130 | }; |
| 131 | |
| 132 | //send email OTP function |
| 133 | const SendOtp = async () => { |
no test coverage detected