diff --git a/src/components/AuthPages/Promo/Promo.jsx b/src/components/AuthPages/Promo/Promo.jsx index 08227ff..2bcaf4e 100644 --- a/src/components/AuthPages/Promo/Promo.jsx +++ b/src/components/AuthPages/Promo/Promo.jsx @@ -1,5 +1,9 @@ import React, {useState, useEffect} from 'react' -import { Link, useParams } from "react-router-dom"; +import { Link, useParams, useNavigate } from "react-router-dom"; +import { useDispatch } from "react-redux"; +import { updateUserDetails } from "../../../store/UserDetails"; + +import usersService from "../../../services/UsersService"; import PromoPageLayout from '../PromoPageLayout' import InputCom from "../../Helpers/Inputs/InputCom"; @@ -8,12 +12,16 @@ import LoadingSpinner from '../../../components/Spinners/LoadingSpinner' export default function Promo() { - const {name, id} = useParams() - // console.log(name, id) - - const email = `${name}@${name}.com`.toLowerCase() + const api = new usersService() - const [requestStatus, setRequestStatus] = useState({loading:true, data:[]}) + const {name, id} = useParams() // PARAMETERS COMING FROM THE LINK + // console.log(name, id) + + const navigate = useNavigate() + + const dispatch = useDispatch(); + + const [requestStatus, setRequestStatus] = useState({loading:true, data:{}}) const [completeSignUp, setCompleteSignUp] = useState({loading:false, status:false, message: ''}); @@ -31,23 +39,66 @@ export default function Promo() { }; const handleContinue = () => { + let reqData = { // API REQUEST DATA/PAYLOAD + username: requestStatus?.data?.email, + promo: name, + promo_owner: id, + password: password, + sessionid: '24271A99426' + } setCompleteSignUp({loading:true, status:false, message: ''}) - if(!password){ + if(!password){ // CHECKS FOR EMPTY PASSWORD setCompleteSignUp({loading:false, status:false, message: 'Please Enter Password'}) return setTimeout(()=>{ setCompleteSignUp({loading:false, status:false, message: ''}) },2000) } - setTimeout(()=>{ - setCompleteSignUp({loading:false, status:true, message: ''}) - },2000) + api.loginPromo(reqData).then(res => { //loginPromo + console.log('RES', res) + if(res.data?.internal_return < 0 || !res?.data?.member_id || !res?.data?.uid || !res?.data?.session || res?.data?.status_message == 'VALID_LINK_NOT_FOUND'){ + setCompleteSignUp({loading:false, status:false, message: 'Unable to login'}) + return setTimeout(()=>{ + setCompleteSignUp({loading:false, status:false, message: ''}) + },4000) + } + + // Do LOGIN HERE + localStorage.setItem("member_id", `${res.data.member_id}`); + localStorage.setItem("uid", `${res.data.uid}`); + localStorage.setItem("session_token", `${res.data.session}`); + localStorage.setItem("wallet_available_status", `${res.data.wallet_available_status}`); + if (res.data?.account_type == "FAMILY") { + sessionStorage.setItem("family_uid", res.data?.family_uid); + sessionStorage.setItem("parent_uid", res.data?.parent_uid); + } + dispatch(updateUserDetails({ ...res.data })); + setTimeout(() => { + navigate("/", { replace: true }); + setCompleteSignUp({loading:false, status:true, message: ''}) + }, 2000); + + }).catch(err => { + setCompleteSignUp({loading:false, status:false, message: 'Opps! try again'}) + setTimeout(()=>{ + setCompleteSignUp({loading:false, status:false, message: ''}) + },4000) + }) } useEffect(()=>{ - const timer = setTimeout(()=>{ - setRequestStatus({loading:false, data:[]}) - },2000) - return () => clearTimeout(timer) + let reqData = { // API REQUEST DATA/PAYLOAD + promo: name, + promo_owner: id, + sessionid: '79970A12501' + } + api.verifyPromo(reqData).then(res => { + if(res?.data?.internal_return < 0 || !res?.data?.email || res?.data?.status_message != 'VALID_LINK_FOUND'){ + return setRequestStatus({loading:false, data:{}}) + } + setRequestStatus({loading:false, data:res?.data}) + }).catch(err => { + setRequestStatus({loading:false, data:{}}) + }) },[]) return ( @@ -68,7 +119,7 @@ export default function Promo() {
Loading...
please do not refresh
- : + : Object.keys(requestStatus.data).length > 0 ?+ This error occurs because you have already verified this link or the + link has expired. Try login or reset password. If none worked, try to + create the account from the start. +
+