From 9d158fe1cb2e7894df65f323e4c0852ad061aee3 Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Tue, 24 Jun 2025 16:38:42 +0100 Subject: [PATCH 1/2] added new endpoint for top bar data --- src/component/auth/AuthLayout.jsx | 24 +++++------ src/component/auth/Login2.jsx | 13 +++++- src/component/home/TopBar.jsx | 41 +++++++++++++------ src/component/home/_TopBar.jsx | 67 +++++++++++++++++++++++++++++++ src/services/services.js | 11 +++-- 5 files changed, 122 insertions(+), 34 deletions(-) create mode 100644 src/component/home/_TopBar.jsx diff --git a/src/component/auth/AuthLayout.jsx b/src/component/auth/AuthLayout.jsx index 1525d07..387a2c0 100644 --- a/src/component/auth/AuthLayout.jsx +++ b/src/component/auth/AuthLayout.jsx @@ -1,25 +1,21 @@ -import React, { useEffect, useState } from 'react' +import React, { useState } from 'react' import { Outlet } from 'react-router-dom' -import MainLoaderBS from '../loaders/MainLoaderBS' +// import MainLoaderBS from '../loaders/MainLoaderBS' export default function AuthLayout() { - const [loading, setLoading] = useState(true) + const [loading, setLoading] = useState(false) - useEffect(()=>{ - const timer = setTimeout(()=>{ - setLoading(false) - },500) + // useEffect(()=>{ + // const timer = setTimeout(()=>{ + // setLoading(false) + // },500) - return () => clearTimeout(timer) - },[]) + // return () => clearTimeout(timer) + // },[]) return (
- {loading ? - - : - - } +
) } diff --git a/src/component/auth/Login2.jsx b/src/component/auth/Login2.jsx index d1f2034..aeda597 100644 --- a/src/component/auth/Login2.jsx +++ b/src/component/auth/Login2.jsx @@ -1,6 +1,6 @@ -import React, { useState } from 'react' +import React, { useEffect, useState } from 'react' import { useMutation } from '@tanstack/react-query' -import { useDispatch } from 'react-redux' +import { useDispatch, useSelector } from 'react-redux' // import LoginImg from '../../assets/bg/login.svg' @@ -14,6 +14,9 @@ import IOSDownload from '../../assets/img/download/apple.jpg' export default function Login() { + const { userDetails: { token, room }} = useSelector((state) => state?.userDetails); // CHECKS IF USER Details are avaliable, to determine if user is active + let loggedIn = token && room ? true : false; // variable to determine if user is logged in + const dispatch = useDispatch() const navigate = useNavigate() @@ -67,6 +70,12 @@ export default function Login() { } } + useEffect(()=>{ // NAVIGATES USER TO HOME PAGE IF USER IS ACTIVE + if(loggedIn){ + navigate(siteLinks.dash) + } + },[]) + return (
diff --git a/src/component/home/TopBar.jsx b/src/component/home/TopBar.jsx index 8d81040..f8a6c35 100644 --- a/src/component/home/TopBar.jsx +++ b/src/component/home/TopBar.jsx @@ -1,20 +1,37 @@ -import React from 'react' -import { useQuery } from '@tanstack/react-query' +import React, {useEffect} from 'react' +import { useMutation } from '@tanstack/react-query' import { topBar } from '../../services/services' -import queryKeys from '../../services/queryKeys' export default function TopBar() { - const {data, isFetching, isError, error} = useQuery({ - queryKey: queryKeys.topBar, - queryFn: () => topBar() - }) + const topBarData = useMutation({ + mutationFn: (reqData) => { + return topBar(reqData) + }, + onError: (error) => { + console.log(error) + location.reload(); + }, + onSuccess: (res) => { + if(res?.data?.resultCode != '0'){ + throw({message: 'Something went wrong'}) + } + } + }) - const topData = data?.data?.bar_data?.top_bar + useEffect(()=>{ + let reqData = { + token: localStorage.getItem('token'), // USER TOKEN + uid: localStorage.getItem('uid') // USER UID + } + topBarData.mutate(reqData) + },[]) + + const data = topBarData?.data?.data?.top_bar // top bar data return ( <> - {isFetching ? + {topBarData.isPending ? <>
@@ -22,15 +39,15 @@ export default function TopBar() {
- : isError ? + : topBarData.error ?
-

{error.message}

+

{topBarData.error.message}

: <> - {topData && topData?.map((item, index)=>{ + {data && data?.map((item, index)=>{ let textColor = item?.description == 'Contacts' ? 'text-danger' : item?.description == 'Site Traffic' ? 'text-primary' : item?.description == 'Appointments' ? 'text-orange' : 'text-success' return (
diff --git a/src/component/home/_TopBar.jsx b/src/component/home/_TopBar.jsx new file mode 100644 index 0000000..223288d --- /dev/null +++ b/src/component/home/_TopBar.jsx @@ -0,0 +1,67 @@ +import React from 'react' +import { useQuery } from '@tanstack/react-query' +import { topBar } from '../../services/services' +import queryKeys from '../../services/queryKeys' + +export default function TopBar() { + + const {data, isFetching, isError, error} = useQuery({ + queryKey: queryKeys.topBar, + queryFn: () => topBar() + }) + + const topData = data?.data?.bar_data?.top_bar + console.log('topData', topData) + + return ( + <> + {isFetching ? + <> +
+
+

Loading...

+
+
+ + : isError ? +
+
+

{error.message}

+
+
+ : + <> + {topData && topData?.map((item, index)=>{ + let textColor = item?.description == 'Contacts' ? 'text-danger' : item?.description == 'Site Traffic' ? 'text-primary' : item?.description == 'Appointments' ? 'text-orange' : 'text-success' + return ( +
+
+
+
+
+
+
+

{item?.value || 0}

+ {item?.data_span} +
+
+
{item?.description}
+ N/A +
+
+
+
+
+
+
+
+
+
+ ) + })} + + } + + ) +} diff --git a/src/services/services.js b/src/services/services.js index cc1d37b..7d8c4ec 100644 --- a/src/services/services.js +++ b/src/services/services.js @@ -65,9 +65,7 @@ export const userInfo = (reqData) => { } return postAuxEnd('/panel/Account', postData, false) } -// export const getUserDetails = (reqData) => { -// return getAuxEnd(`/panel/Account`, reqData) -// } + @@ -114,10 +112,11 @@ export const recoverPWD = (reqData) => { } // FUNCTION TO GET DASHBOARD TOP BAR SECTION -export const topBar = () => { +export const topBar = (reqData) => { let postData = { - "token":"there-will-be-token", - "uid": "there-will-be-uid" + ...reqData, + // "token":"there-will-be-token", + // "uid": "there-will-be-uid" } return postAuxEnd(`/panel/account-bar`, postData, false) } From c03c70b07e175c55d67b39b4476eed55a72bd9a6 Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Tue, 24 Jun 2025 16:41:05 +0100 Subject: [PATCH 2/2] auth layout fix --- src/component/auth/AuthLayout.jsx | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/component/auth/AuthLayout.jsx b/src/component/auth/AuthLayout.jsx index 387a2c0..1525d07 100644 --- a/src/component/auth/AuthLayout.jsx +++ b/src/component/auth/AuthLayout.jsx @@ -1,21 +1,25 @@ -import React, { useState } from 'react' +import React, { useEffect, useState } from 'react' import { Outlet } from 'react-router-dom' -// import MainLoaderBS from '../loaders/MainLoaderBS' +import MainLoaderBS from '../loaders/MainLoaderBS' export default function AuthLayout() { - const [loading, setLoading] = useState(false) + const [loading, setLoading] = useState(true) - // useEffect(()=>{ - // const timer = setTimeout(()=>{ - // setLoading(false) - // },500) + useEffect(()=>{ + const timer = setTimeout(()=>{ + setLoading(false) + },500) - // return () => clearTimeout(timer) - // },[]) + return () => clearTimeout(timer) + },[]) return (
- + {loading ? + + : + + }
) }