diff --git a/src/components/MyWallet/AddRecipient.jsx b/src/components/MyWallet/AddRecipient.jsx index b2e176a..bf0965c 100644 --- a/src/components/MyWallet/AddRecipient.jsx +++ b/src/components/MyWallet/AddRecipient.jsx @@ -108,7 +108,7 @@ function AddRecipient() { } // setRequestStatus({message: 'Recipient Added Successfully!', loading: false, status: true}) toast.success("Recipient Added Successfully!"); - setTimeout(()=>{navigate('../transfer-fund',{replace:true})},1000) + setTimeout(()=>{navigate('/my-wallet/transfer-fund',{replace:true})},1000) }).catch((error)=>{ setRequestStatus({message: 'Opps! an error occured! Try again later', loading: false, status: false}) }) diff --git a/src/components/MyWallet/ConfirmAddFund.jsx b/src/components/MyWallet/ConfirmAddFund.jsx index 8f45f30..7532948 100644 --- a/src/components/MyWallet/ConfirmAddFund.jsx +++ b/src/components/MyWallet/ConfirmAddFund.jsx @@ -39,6 +39,7 @@ function ConfirmAddFund({payment}) { toast.success('Account Topup was sucessful') setTimeout(()=>{ navigate('/my-wallet', {replace: true}) + window.location.reload(true) }, 1000) }).catch(err => { // do something @@ -78,7 +79,7 @@ function ConfirmAddFund({payment}) { useEffect(()=>{ // what happens if not state redirect user if(!state){ - navigate('../add-fund',{replace: true}) + navigate('/my-wallet/add-fund',{replace: true}) }else{ setPageLoading(false) } diff --git a/src/components/MyWallet/ConfirmTransfer.jsx b/src/components/MyWallet/ConfirmTransfer.jsx index a0ef9bd..f125bdd 100644 --- a/src/components/MyWallet/ConfirmTransfer.jsx +++ b/src/components/MyWallet/ConfirmTransfer.jsx @@ -34,7 +34,8 @@ function ConfirmTransfer({payment, wallet}) { setRequestStatus({message: 'transfer successful', loading: false, status: true}) toast.success('Transfer sucessful') setTimeout(()=>{ - navigate('/', {replace: true}) + navigate('/my-wallet', {replace: true}) + window.location.reload(true) }, 1000) }).catch(error=>{ setRequestStatus({message: 'Opps! something went wrong! Try Again', loading: false, status: false}) @@ -44,7 +45,7 @@ function ConfirmTransfer({payment, wallet}) { useEffect(()=>{ // what happens if not state redirect user if(!state){ - navigate('../transfer-fund',{replace: true}) + navigate('/my-wallet/transfer-fund',{replace: true}) }else{ setPageLoading(false) } diff --git a/src/components/Settings/Tabs/PersonalInfoTab.jsx b/src/components/Settings/Tabs/PersonalInfoTab.jsx index 5414e5d..59b3cb0 100644 --- a/src/components/Settings/Tabs/PersonalInfoTab.jsx +++ b/src/components/Settings/Tabs/PersonalInfoTab.jsx @@ -4,6 +4,7 @@ import InputCom from "../../Helpers/Inputs/InputCom"; import {Link, useNavigate} from 'react-router-dom' import usersService from "../../../services/UsersService"; import LoadingSpinner from "../../Spinners/LoadingSpinner"; +import { useSelector } from "react-redux"; import {toast} from 'react-toastify' @@ -34,14 +35,6 @@ const validationSchema = Yup.object().shape({ .required('State is required'), }) -const initialValues = { - firstname: '', - lastname: '', - state: '', - city: '', - email: '' -} - export default function PersonalInfoTab({ datas, frstNmeHndlr, @@ -57,13 +50,23 @@ export default function PersonalInfoTab({ coverImgChangHandler, }) { + let {userDetails} = useSelector((state) => state.userDetails) + const apiCall = new usersService() + let navigate = useNavigate() let [togglePromotion, setTogglePromotion] = useState(false) + const initialValues = { + firstname: userDetails?.firstname, + lastname: userDetails?.lastname, + state: userDetails?.state, + city: userDetails?.city, + email: userDetails?.email + } + let [profile, setProfile] = useState({ // state for requesting from load profile API - data: [], loading: true, status: false }) @@ -74,55 +77,27 @@ export default function PersonalInfoTab({ status: false }) - let [inputs, setInputs] = useState({ // State for input fields - firstname: '', - lastname: '', - state: '', - city: '', - email: '' - }) - - // const handleChange = ({target:{name, value}}) => { - // setInputs(prev => ({...prev, [name]:value})) - // } - const handleUpdateUser = (values, helpers)=> { setRequestState({message: '', loading: true, status: false}) - apiCall.updateProfile(values).then((res)=>{ + apiCall.updateProfile(values).then((res)=>{ // API CALL TO UPDATE USER DETAILS if(res.data.internal_return < 0){ setRequestState({message: 'Profile Was unable to update', loading: false, status: false}) return } // setRequestState({message: 'Profile update successfully', loading: false, status: true}) toast.success("Update Successful"); - setTimeout(()=>{navigate('/',{replace:true})},1000) + setTimeout(()=>{ + navigate('/',{replace:true}) + window.location.reload(true) + },1000) }).catch(error => { setRequestState({message: 'Opps! an error occurred. Try Agian', loading: false, status: false}) }) } - const loadProfile = ()=>{ // function to load user profile - apiCall.loadProfile().then((res)=>{ - if(res.data.internal_return < 0){ - setProfile(prev => ({...prev, loading: false, status: true})) - return - } - setProfile(prev => ({...prev, data: [res.data], loading: false, status: true})) - setInputs({ - firstname: res.data.firstname, - lastname: res.data.lastname, - state: res.data.state, - city: res.data.city, - email: res.data.email - }) - }).catch(error =>{ - setProfile(prev => ({...prev, loading: false, status: false})) - }) - } - useEffect(()=>{ - loadProfile() // loads user profile unto the page + setProfile({loading: false, status: true}) },[]) return ( @@ -135,14 +110,12 @@ export default function PersonalInfoTab({ :
- + {(props => { return (
- { - profile.data.length ? - profile.data.map((item, index) => ( -
+ +
{/* inputs starts here */} @@ -153,7 +126,7 @@ export default function PersonalInfoTab({ type="text" name="username" placeholder="" - value={item.username} + value={userDetails.username} disable={true} />
@@ -205,7 +178,7 @@ export default function PersonalInfoTab({ label="Country" type="text" name="country" - value={item.country} + value={userDetails.country} disable={true} />
@@ -324,41 +297,35 @@ export default function PersonalInfoTab({
- - )) - : - profile.status ? -
No User Information Found!
- : -
Opps! something went wrong. Try Again Later!
- } -
- {requestStatus.message != '' &&

{requestStatus.message}

} -
-
- - - {" "} - Cancel - - +
- {requestStatus.loading ? - - : - - } +
+ {requestStatus.message != '' &&

{requestStatus.message}

} +
+
+ + + {" "} + Cancel + + + + {requestStatus.loading ? + + : + + } +
-
) })} diff --git a/src/middleware/AuthRoute.jsx b/src/middleware/AuthRoute.jsx index f57ec6e..7629db3 100644 --- a/src/middleware/AuthRoute.jsx +++ b/src/middleware/AuthRoute.jsx @@ -46,13 +46,10 @@ const AuthRoute = ({ redirectPath = "/login", children }) => { setIsLogin({loading: false, status: false}) }) } - const getProfile = useCallback(()=>{ - loadProfile() // API CALL TO GET USER PROFILE - }, []) useEffect(() => { if(!isLogin.status){ - getProfile() + loadProfile() // LOADS USER PROFILE DETAILS AND CALLS DISPATCH UPDATEUSERDETAILS TO UPDATE USERDETAILS SLICE IN STORE } const checkInactivity = setInterval(() => {