From c3faaa65b95cfab54e97c0e0ba4097089da928a8 Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs Date: Wed, 20 Nov 2024 19:39:41 +0530 Subject: [PATCH] refactor: made phone field optional for signer/contact --- apps/OpenSign/src/components/AddSigner.js | 1 + apps/OpenSign/src/components/AddUser.js | 3 +- apps/OpenSign/src/pages/GuestLogin.js | 42 ++++++----- apps/OpenSign/src/pages/SSOVerify.js | 84 +++++++++++----------- apps/OpenSign/src/primitives/AddContact.js | 1 + 5 files changed, 72 insertions(+), 59 deletions(-) diff --git a/apps/OpenSign/src/components/AddSigner.js b/apps/OpenSign/src/components/AddSigner.js index 315808dc2..66508cd92 100644 --- a/apps/OpenSign/src/components/AddSigner.js +++ b/apps/OpenSign/src/components/AddSigner.js @@ -274,6 +274,7 @@ const AddSigner = (props) => { onChange={(e) => setPhone(e.target.value)} disabled={addYourself} className="op-input op-input-bordered op-input-sm focus:outline-none hover:border-base-content w-full text-xs" + placeholder={t("phone-optional")} />
diff --git a/apps/OpenSign/src/components/AddUser.js b/apps/OpenSign/src/components/AddUser.js index b19048d88..f8e593e44 100644 --- a/apps/OpenSign/src/components/AddUser.js +++ b/apps/OpenSign/src/components/AddUser.js @@ -434,10 +434,9 @@ const AddUser = (props) => { handleChange(e)} - // required className="op-input op-input-bordered op-input-sm focus:outline-none hover:border-base-content w-full text-xs" />
diff --git a/apps/OpenSign/src/pages/GuestLogin.js b/apps/OpenSign/src/pages/GuestLogin.js index 6a1b5877c..f7eaa8bea 100644 --- a/apps/OpenSign/src/pages/GuestLogin.js +++ b/apps/OpenSign/src/pages/GuestLogin.js @@ -1,7 +1,7 @@ import React, { useState, useEffect } from "react"; import { useNavigate, useParams } from "react-router-dom"; import axios from "axios"; -import { isEnableSubscription } from "../constant/const"; +import { emailRegex, isEnableSubscription } from "../constant/const"; import { contractUsers, getAppLogo, @@ -189,23 +189,30 @@ function GuestLogin() { }; const handleUserData = async (e) => { e.preventDefault(); - const params = { ...contact, docId: documentId }; - try { - setLoading(true); - const linkContactRes = await Parse.Cloud.run("linkcontacttodoc", params); - setContactId(linkContactRes.contactId); - const IsEnableOTP = await navigateToDoc( - documentId, - linkContactRes.contactId - ); - if (!IsEnableOTP) { - setEnterOtp(true); - await SendOtp(); + if (!emailRegex.test(contact.email)) { + alert("Please enter a valid email address."); + } else { + const params = { ...contact, docId: documentId }; + try { + setLoading(true); + const linkContactRes = await Parse.Cloud.run( + "linkcontacttodoc", + params + ); + setContactId(linkContactRes.contactId); + const IsEnableOTP = await navigateToDoc( + documentId, + linkContactRes.contactId + ); + if (!IsEnableOTP) { + setEnterOtp(true); + await SendOtp(); + } + } catch (err) { + setLoading(false); + alert(t("something-went-wrong-mssg")); + console.log("Err in link ext contact", err); } - } catch (err) { - setLoading(false); - alert(t("something-went-wrong-mssg")); - console.log("Err in link ext contact", err); } }; const handleInputChange = (e) => { @@ -348,6 +355,7 @@ function GuestLogin() { onChange={handleInputChange} className="op-input op-input-bordered op-input-sm focus:outline-none hover:border-base-content w-full text-xs" disabled={loading} + placeholder={t("phone-optional")} />
diff --git a/apps/OpenSign/src/pages/SSOVerify.js b/apps/OpenSign/src/pages/SSOVerify.js index 7a7712e02..d6961e15d 100644 --- a/apps/OpenSign/src/pages/SSOVerify.js +++ b/apps/OpenSign/src/pages/SSOVerify.js @@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react"; import { useLocation, useNavigate } from "react-router-dom"; import Parse from "parse"; import { appInfo } from "../constant/appinfo"; -import { isEnableSubscription } from "../constant/const"; +import { emailRegex, isEnableSubscription } from "../constant/const"; import { fetchSubscription } from "../constant/Utils"; import { useDispatch } from "react-redux"; import { showTenant } from "../redux/reducers/ShowTenant"; @@ -88,54 +88,58 @@ const SSOVerify = () => { // `handleSubmitbtn` is used to create a user in the extended class const handleSubmitbtn = async (e) => { e.preventDefault(); - setIsLoader(true); - let phone; - if (userDetails?.phone) { - phone = validateInput(userDetails?.phone); + if (!emailRegex.test(userDetails.email)) { + alert("Please enter a valid email address."); } else { - phone = true; - } - if (userDetails.Destination && userDetails.Company && phone) { - const payload = { sessionToken: localStorage.getItem("accesstoken") }; - if (payload && payload.sessionToken) { - const params = { - userDetails: { - name: userDetails.name, - email: userDetails.email, - phone: userDetails?.phone || "", - role: "contracts_User", - company: userDetails.Company, - jobTitle: userDetails.Destination - } - }; - try { - const userSignUp = await Parse.Cloud.run("usersignup", params); - if (userSignUp && userSignUp.sessionToken) { - const LocalUserDetails = params.userDetails; - localStorage.setItem( - "userDetails", - JSON.stringify(LocalUserDetails) - ); - await thirdpartyLoginfn(userSignUp.sessionToken); - setIsLoader(false); - } else { - alert(userSignUp.message); + setIsLoader(true); + let phone; + if (userDetails?.phone) { + phone = validateInput(userDetails?.phone); + } else { + phone = true; + } + if (userDetails.Destination && userDetails.Company && phone) { + const payload = { sessionToken: localStorage.getItem("accesstoken") }; + if (payload && payload.sessionToken) { + const params = { + userDetails: { + name: userDetails.name, + email: userDetails.email, + phone: userDetails?.phone || "", + role: "contracts_User", + company: userDetails.Company, + jobTitle: userDetails.Destination + } + }; + try { + const userSignUp = await Parse.Cloud.run("usersignup", params); + if (userSignUp && userSignUp.sessionToken) { + const LocalUserDetails = params.userDetails; + localStorage.setItem( + "userDetails", + JSON.stringify(LocalUserDetails) + ); + await thirdpartyLoginfn(userSignUp.sessionToken); + setIsLoader(false); + } else { + alert(userSignUp.message); + setIsLoader(false); + } + } catch (err) { + console.log("error in usersignup", err); + localStorage.removeItem("accesstoken"); + alert(t("something-went-wrong-mssg")); setIsLoader(false); } - } catch (err) { - console.log("error in usersignup", err); + } else { localStorage.removeItem("accesstoken"); - alert(t("something-went-wrong-mssg")); + alert(t("server-error")); setIsLoader(false); } } else { - localStorage.removeItem("accesstoken"); - alert(t("server-error")); + alert(t("filed-required-correctly")); setIsLoader(false); } - } else { - alert(t("filed-required-correctly")); - setIsLoader(false); } }; // `thirdpartyLoginfn` is used to save necessary parameters locally for the logged-in user diff --git a/apps/OpenSign/src/primitives/AddContact.js b/apps/OpenSign/src/primitives/AddContact.js index 708753f41..69f8b2f8b 100644 --- a/apps/OpenSign/src/primitives/AddContact.js +++ b/apps/OpenSign/src/primitives/AddContact.js @@ -197,6 +197,7 @@ const AddContact = (props) => { onChange={(e) => setPhone(e.target.value)} disabled={addYourself} className="op-input op-input-bordered op-input-sm focus:outline-none hover:border-base-content w-full text-xs" + placeholder={t("phone-optional")} />