Skip to content

Commit c3faaa6

Browse files
refactor: made phone field optional for signer/contact
1 parent dd0e2f0 commit c3faaa6

5 files changed

Lines changed: 72 additions & 59 deletions

File tree

apps/OpenSign/src/components/AddSigner.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ const AddSigner = (props) => {
274274
onChange={(e) => setPhone(e.target.value)}
275275
disabled={addYourself}
276276
className="op-input op-input-bordered op-input-sm focus:outline-none hover:border-base-content w-full text-xs"
277+
placeholder={t("phone-optional")}
277278
/>
278279
</div>
279280
<div className="mt-4 flex gap-x-2 justify-start">

apps/OpenSign/src/components/AddUser.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -434,10 +434,9 @@ const AddUser = (props) => {
434434
<input
435435
type="text"
436436
name="phone"
437-
placeholder="optional"
437+
placeholder={t("phone-optional")}
438438
value={formdata.phone}
439439
onChange={(e) => handleChange(e)}
440-
// required
441440
className="op-input op-input-bordered op-input-sm focus:outline-none hover:border-base-content w-full text-xs"
442441
/>
443442
</div>

apps/OpenSign/src/pages/GuestLogin.js

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, { useState, useEffect } from "react";
22
import { useNavigate, useParams } from "react-router-dom";
33
import axios from "axios";
4-
import { isEnableSubscription } from "../constant/const";
4+
import { emailRegex, isEnableSubscription } from "../constant/const";
55
import {
66
contractUsers,
77
getAppLogo,
@@ -189,23 +189,30 @@ function GuestLogin() {
189189
};
190190
const handleUserData = async (e) => {
191191
e.preventDefault();
192-
const params = { ...contact, docId: documentId };
193-
try {
194-
setLoading(true);
195-
const linkContactRes = await Parse.Cloud.run("linkcontacttodoc", params);
196-
setContactId(linkContactRes.contactId);
197-
const IsEnableOTP = await navigateToDoc(
198-
documentId,
199-
linkContactRes.contactId
200-
);
201-
if (!IsEnableOTP) {
202-
setEnterOtp(true);
203-
await SendOtp();
192+
if (!emailRegex.test(contact.email)) {
193+
alert("Please enter a valid email address.");
194+
} else {
195+
const params = { ...contact, docId: documentId };
196+
try {
197+
setLoading(true);
198+
const linkContactRes = await Parse.Cloud.run(
199+
"linkcontacttodoc",
200+
params
201+
);
202+
setContactId(linkContactRes.contactId);
203+
const IsEnableOTP = await navigateToDoc(
204+
documentId,
205+
linkContactRes.contactId
206+
);
207+
if (!IsEnableOTP) {
208+
setEnterOtp(true);
209+
await SendOtp();
210+
}
211+
} catch (err) {
212+
setLoading(false);
213+
alert(t("something-went-wrong-mssg"));
214+
console.log("Err in link ext contact", err);
204215
}
205-
} catch (err) {
206-
setLoading(false);
207-
alert(t("something-went-wrong-mssg"));
208-
console.log("Err in link ext contact", err);
209216
}
210217
};
211218
const handleInputChange = (e) => {
@@ -348,6 +355,7 @@ function GuestLogin() {
348355
onChange={handleInputChange}
349356
className="op-input op-input-bordered op-input-sm focus:outline-none hover:border-base-content w-full text-xs"
350357
disabled={loading}
358+
placeholder={t("phone-optional")}
351359
/>
352360
</div>
353361
<div className="mt-2 flex justify-start">

apps/OpenSign/src/pages/SSOVerify.js

Lines changed: 44 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react";
22
import { useLocation, useNavigate } from "react-router-dom";
33
import Parse from "parse";
44
import { appInfo } from "../constant/appinfo";
5-
import { isEnableSubscription } from "../constant/const";
5+
import { emailRegex, isEnableSubscription } from "../constant/const";
66
import { fetchSubscription } from "../constant/Utils";
77
import { useDispatch } from "react-redux";
88
import { showTenant } from "../redux/reducers/ShowTenant";
@@ -88,54 +88,58 @@ const SSOVerify = () => {
8888
// `handleSubmitbtn` is used to create a user in the extended class
8989
const handleSubmitbtn = async (e) => {
9090
e.preventDefault();
91-
setIsLoader(true);
92-
let phone;
93-
if (userDetails?.phone) {
94-
phone = validateInput(userDetails?.phone);
91+
if (!emailRegex.test(userDetails.email)) {
92+
alert("Please enter a valid email address.");
9593
} else {
96-
phone = true;
97-
}
98-
if (userDetails.Destination && userDetails.Company && phone) {
99-
const payload = { sessionToken: localStorage.getItem("accesstoken") };
100-
if (payload && payload.sessionToken) {
101-
const params = {
102-
userDetails: {
103-
name: userDetails.name,
104-
email: userDetails.email,
105-
phone: userDetails?.phone || "",
106-
role: "contracts_User",
107-
company: userDetails.Company,
108-
jobTitle: userDetails.Destination
109-
}
110-
};
111-
try {
112-
const userSignUp = await Parse.Cloud.run("usersignup", params);
113-
if (userSignUp && userSignUp.sessionToken) {
114-
const LocalUserDetails = params.userDetails;
115-
localStorage.setItem(
116-
"userDetails",
117-
JSON.stringify(LocalUserDetails)
118-
);
119-
await thirdpartyLoginfn(userSignUp.sessionToken);
120-
setIsLoader(false);
121-
} else {
122-
alert(userSignUp.message);
94+
setIsLoader(true);
95+
let phone;
96+
if (userDetails?.phone) {
97+
phone = validateInput(userDetails?.phone);
98+
} else {
99+
phone = true;
100+
}
101+
if (userDetails.Destination && userDetails.Company && phone) {
102+
const payload = { sessionToken: localStorage.getItem("accesstoken") };
103+
if (payload && payload.sessionToken) {
104+
const params = {
105+
userDetails: {
106+
name: userDetails.name,
107+
email: userDetails.email,
108+
phone: userDetails?.phone || "",
109+
role: "contracts_User",
110+
company: userDetails.Company,
111+
jobTitle: userDetails.Destination
112+
}
113+
};
114+
try {
115+
const userSignUp = await Parse.Cloud.run("usersignup", params);
116+
if (userSignUp && userSignUp.sessionToken) {
117+
const LocalUserDetails = params.userDetails;
118+
localStorage.setItem(
119+
"userDetails",
120+
JSON.stringify(LocalUserDetails)
121+
);
122+
await thirdpartyLoginfn(userSignUp.sessionToken);
123+
setIsLoader(false);
124+
} else {
125+
alert(userSignUp.message);
126+
setIsLoader(false);
127+
}
128+
} catch (err) {
129+
console.log("error in usersignup", err);
130+
localStorage.removeItem("accesstoken");
131+
alert(t("something-went-wrong-mssg"));
123132
setIsLoader(false);
124133
}
125-
} catch (err) {
126-
console.log("error in usersignup", err);
134+
} else {
127135
localStorage.removeItem("accesstoken");
128-
alert(t("something-went-wrong-mssg"));
136+
alert(t("server-error"));
129137
setIsLoader(false);
130138
}
131139
} else {
132-
localStorage.removeItem("accesstoken");
133-
alert(t("server-error"));
140+
alert(t("filed-required-correctly"));
134141
setIsLoader(false);
135142
}
136-
} else {
137-
alert(t("filed-required-correctly"));
138-
setIsLoader(false);
139143
}
140144
};
141145
// `thirdpartyLoginfn` is used to save necessary parameters locally for the logged-in user

apps/OpenSign/src/primitives/AddContact.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ const AddContact = (props) => {
197197
onChange={(e) => setPhone(e.target.value)}
198198
disabled={addYourself}
199199
className="op-input op-input-bordered op-input-sm focus:outline-none hover:border-base-content w-full text-xs"
200+
placeholder={t("phone-optional")}
200201
/>
201202
</div>
202203

0 commit comments

Comments
 (0)