Compare commits

...

4 Commits

Author SHA1 Message Date
victorAnumudu aec5cc68a2 edit profile link implemented 2023-04-22 05:23:38 +01:00
ameye 39135654da Merge branch 'my_wallet' of WrenchBoard/Users-Wrench into master 2023-04-21 16:51:59 +00:00
ameye 20a957be07 Merge branch 'login-err-msg-formatting' of WrenchBoard/Users-Wrench into master 2023-04-21 16:51:51 +00:00
Ebube 0b619e9de5 added error msg box 2023-04-21 16:58:06 +01:00
6 changed files with 70 additions and 49 deletions
+2
View File
@@ -19,5 +19,7 @@ REACT_APP_USERS_ENDPOINT="https://apigate.lotus.g1.wrenchboard.com/svs/user"
REACT_APP_SESSION_EXPIRE_MINUTES=5 REACT_APP_SESSION_EXPIRE_MINUTES=5
REACT_APP_LOGIN_ERROR_TIMEOUT=7000
#apigate.lotus.g1.wrenchboard.com:76.209.103.227 #apigate.lotus.g1.wrenchboard.com:76.209.103.227
#apigate.orion.g1.wrenchboard.com:76.209.103.227 #apigate.orion.g1.wrenchboard.com:76.209.103.227
+60 -40
View File
@@ -17,11 +17,15 @@ export default function Login() {
//login error state //login error state
const [loginError, setLoginError] = useState(false); const [loginError, setLoginError] = useState(false);
// for the catch error
const [msgError, setMsgError] = useState('');
const rememberMe = () => { const rememberMe = () => {
setValue(!checked); setValue(!checked);
}; };
console.log(process.env.REACT_APP_LOGIN_ERROR_TIMEOUT)
// email // email
const [email, setMail] = useState(""); const [email, setMail] = useState("");
const handleEmail = (e) => { const handleEmail = (e) => {
@@ -34,41 +38,56 @@ export default function Login() {
}; };
const navigate = useNavigate(); const navigate = useNavigate();
const userApi = new usersService(); const userApi = new usersService();
const doLogin = async () => { const doLogin = async () => {
if (email !== "" && password !== "") { if (email == '' && password == '') {
var postData = { setMsgError('Please fill in fields')
username: email, }
password: password, try {
sessionid: 'STARTING' if (email !== "" && password !== "") {
}; var postData = {
const loginResult = await userApi.logInUser(postData); // just for a test username: email,
//debugger; password: password,
// if (email === "support@mermsemr.com") { sessionid: 'STARTING'
if (loginResult.data.status > 0 && loginResult.data.internal_return == 100 && loginResult.data.session != '') { // just for a start };
localStorage.setItem("email", `${loginResult.data.email}`); const loginResult = await userApi.logInUser(postData); // just for a test
localStorage.setItem("member_id", `${loginResult.data.member_id}`); //debugger;
localStorage.setItem("uid", `${loginResult.data.uid}`); // if (email === "support@mermsemr.com") {
localStorage.setItem("session_token", `${loginResult.data.session}`); if (loginResult.data.status > 0 && loginResult.data.internal_return == 100 && loginResult.data.session != '') { // just for a start
localStorage.setItem("added", `${loginResult.data.added}`); localStorage.setItem("email", `${loginResult.data.email}`);
localStorage.setItem("city", `${loginResult.data.city}`); localStorage.setItem("member_id", `${loginResult.data.member_id}`);
localStorage.setItem("country", `${loginResult.data.country}`); localStorage.setItem("uid", `${loginResult.data.uid}`);
localStorage.setItem("firstname", `${loginResult.data.firstname}`); localStorage.setItem("session_token", `${loginResult.data.session}`);
localStorage.setItem("last_login", `${loginResult.data.last_login}`); localStorage.setItem("added", `${loginResult.data.added}`);
localStorage.setItem("lastname", `${loginResult.data.lastname}`); localStorage.setItem("city", `${loginResult.data.city}`);
localStorage.setItem("state", `${loginResult.data.state}`); localStorage.setItem("country", `${loginResult.data.country}`);
localStorage.setItem("zip_code", `${loginResult.data.zip_code}`); localStorage.setItem("firstname", `${loginResult.data.firstname}`);
localStorage.setItem("session", `${loginResult.data.session}`); localStorage.setItem("last_login", `${loginResult.data.last_login}`);
setLoginLoading(true); localStorage.setItem("lastname", `${loginResult.data.lastname}`);
// userApi.getUserReminders(); //testing localStorage.setItem("state", `${loginResult.data.state}`);
setTimeout(() => { localStorage.setItem("zip_code", `${loginResult.data.zip_code}`);
toast.success("Login Successfully"); localStorage.setItem("session", `${loginResult.data.session}`);
navigate("/", { replace: true }); setLoginLoading(true);
setLoginLoading(false); // userApi.getUserReminders(); //testing
}, 2000); setTimeout(() => {
} else { toast.success("Login Successfully");
// toast.error("Invalid Credential"); navigate("/", { replace: true });
setLoginError(true) setLoginLoading(false);
}, 2000);
} else {
// toast.error("Invalid Credential");
setLoginError(true)
}
} }
} catch (error) {
console.log(error)
setMsgError('An error occurred')
} finally {
setTimeout(() => {
setLoginError(false)
setMsgError(null)
}, Number(process.env.REACT_APP_LOGIN_ERROR_TIMEOUT))
} }
}; };
@@ -78,11 +97,11 @@ export default function Login() {
slogan="Welcome to WrenchBoard" slogan="Welcome to WrenchBoard"
> >
<div className="w-full"> <div className="w-full">
<div className='mb-12'> <div className='mb-12'>
<Link to='#'> <Link to='#'>
<img src={WrenchBoard} alt="wrenchboard" className="h-10 mx-auto" /> <img src={WrenchBoard} alt="wrenchboard" className="h-10 mx-auto" />
</Link> </Link>
</div> </div>
<div className="content-wrapper login shadow-md w-full lg:max-w-[500px] mx-auto flex justify-center items-center xl:bg-white dark:bg-dark-white 2xl:w-[828px] rounded-[0.475rem] sm:p-7 p-5"> <div className="content-wrapper login shadow-md w-full lg:max-w-[500px] mx-auto flex justify-center items-center xl:bg-white dark:bg-dark-white 2xl:w-[828px] rounded-[0.475rem] sm:p-7 p-5">
<div className="w-full"> <div className="w-full">
<div className="title-area flex flex-col justify-center items-center relative text-center mb-7"> <div className="title-area flex flex-col justify-center items-center relative text-center mb-7">
@@ -150,6 +169,8 @@ export default function Login() {
Forgot Password Forgot Password
</a> </a>
</div> */} </div> */}
{loginError && <div className="relative p-4 text-[#912741] bg-[#fcd9e2] border-[#fbc6d3] mb-4 rounded-[0.475rem] text-md font-light leading-[19.5px]">Invalid username or password- Please <Link to='/#' className='text-[#009ef7]'>reset your password</Link> or <Link to='/signup' className='text-[#009ef7]'>create a new account</Link></div>}
{msgError && <div className="relative p-4 text-[#912741] bg-[#fcd9e2] border-[#fbc6d3] mb-4 rounded-[0.475rem] text-md font-light leading-[19.5px]">{msgError}</div>}
<div className="signin-area mb-3.5"> <div className="signin-area mb-3.5">
<div className="flex justify-center"> <div className="flex justify-center">
<button <button
@@ -165,7 +186,6 @@ export default function Login() {
)} )}
</button> </button>
</div> </div>
{loginError && <p class="text-center text-red-700 pb-4">Invalid username or password</p>}
<BrandBtn link='#' imgSrc={googleLogo} brand='Google' /> <BrandBtn link='#' imgSrc={googleLogo} brand='Google' />
<BrandBtn link='#' imgSrc={facebookLogo} brand='Facebook' /> <BrandBtn link='#' imgSrc={facebookLogo} brand='Facebook' />
<BrandBtn link='#' imgSrc={appleLogo} brand='Apple' /> <BrandBtn link='#' imgSrc={appleLogo} brand='Apple' />
@@ -178,7 +198,7 @@ export default function Login() {
</a> </a>
</p> </p>
</div> */} </div> */}
<div className="pt-5 text-[#181c32] text-center font-semibold text-base">This site is protected by hCaptcha and the our Privacy Policy and Terms of Service apply.</div> <div className="pt-5 text-[#181c32] text-center font-semibold text-base">This site is protected by hCaptcha and the our Privacy Policy and Terms of Service apply.</div>
</div> </div>
</div> </div>
</div> </div>
@@ -33,6 +33,7 @@ export default function InputCom({
className="input-field placeholder:text-base text-bese px-6 text-dark-gray dark:text-white w-full h-full bg-[#FAFAFA] dark:bg-[#11131F] focus:ring-0 focus:outline-none" className="input-field placeholder:text-base text-bese px-6 text-dark-gray dark:text-white w-full h-full bg-[#FAFAFA] dark:bg-[#11131F] focus:ring-0 focus:outline-none"
type={type} type={type}
id={name} id={name}
required
/> />
{iconName && ( {iconName && (
<div className="absolute right-6 bottom-[19px] z-10"> <div className="absolute right-6 bottom-[19px] z-10">
+2 -7
View File
@@ -641,7 +641,7 @@ export default function Header({ logoutModalHandler, sidebarHandler }) {
<li className="content-item my-2 hover:bg-slate-100 transition duration-500 rounded-lg"> <li className="content-item my-2 hover:bg-slate-100 transition duration-500 rounded-lg">
<Link <Link
to="/profile" to="/settings"
className="notifications" className="notifications"
> >
<div className="name"> <div className="name">
@@ -679,7 +679,7 @@ export default function Header({ logoutModalHandler, sidebarHandler }) {
<ul className="p-3"> <ul className="p-3">
<li className="content-item my-1 hover:bg-slate-100 transition duration-500 rounded-lg"> <li className="content-item my-1 hover:bg-slate-100 transition duration-500 rounded-lg">
<Link <Link
to="#" to="/referral"
className="notifications" className="notifications"
> >
<div className="name"> <div className="name">
@@ -794,13 +794,8 @@ export default function Header({ logoutModalHandler, sidebarHandler }) {
<p className="text-sm">English </p> <p className="text-sm">English </p>
</div> </div>
</div> </div>
{/* <div className="px-1 flex items-center space-x-1 bg-slate-100 rounded-sm text-sm py-1 text-dark-gray dark:text-white hover:text-sky-blue transition font-medium">
<img className="w-[15px] h-[15px]" src={Flag} alt="U.S.A Flag" />
<p className="text-sm">English </p>
</div> */}
</Link> </Link>
</li> </li>
</ul> </ul>
</div> </div>
{/* end Language list items*/} {/* end Language list items*/}
+1 -1
View File
@@ -113,7 +113,7 @@ export default function Settings() {
<Icons name="people-hover" /> <Icons name="people-hover" />
</div> </div>
<div> <div>
<p className="text-18 tracking-wide">Personal Info</p> <p className="text-18 tracking-wide">Edit Profile</p>
</div> </div>
</li> </li>
<li <li
+4 -1
View File
@@ -458,6 +458,9 @@ input[type="number"] {
background-size: cover; background-size: cover;
} }
.content{
overflow: hidden;
}
.content-item .inner-list-items { .content-item .inner-list-items {
top: 0; top: 0;
@@ -468,7 +471,7 @@ input[type="number"] {
} }
.content-item:hover .inner-list-items { .content-item:hover .inner-list-items {
right: -30%; right: 0%;
opacity: 1; opacity: 1;
z-index: 2; z-index: 2;
} }