complete profile
This commit is contained in:
+31
-9
@@ -4,15 +4,17 @@ import 'swiper/swiper-bundle.css';
|
||||
import 'react-loading-skeleton/dist/skeleton.css'
|
||||
import { BrowserRouter } from 'react-router-dom'
|
||||
import { QueryCache, QueryClient, QueryClientProvider } from '@tanstack/react-query'
|
||||
// import { getToken } from './config/func'
|
||||
import MainRouter from './router/MainRouter'
|
||||
// import AuthRouter from './router/AuthRouter'
|
||||
import ToastContainer from './components/Toast'
|
||||
import { getRefreshToken, getToken, removeRefreshToken, removeToken, setRefreshToken, setToken } from './config/func';
|
||||
import AuthRouter from './router/AuthRouter';
|
||||
import CompleteProfileRouter from './router/CompleteProfileRouter';
|
||||
import type { IApiErrorRepsonse } from './shared/types/Types';
|
||||
import { Paths } from './config/Paths';
|
||||
import { refreshToken } from './pages/auth/service/AuthService';
|
||||
import { useGetMe } from './pages/user/hooks/useUserData';
|
||||
import { needsProfileCompletion } from './pages/user/utils/profileUtils';
|
||||
import MoonLoader from 'react-spinners/MoonLoader';
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
@@ -123,17 +125,37 @@ const queryClient = new QueryClient({
|
||||
}
|
||||
});
|
||||
|
||||
const App: FC = () => {
|
||||
|
||||
const isLoggedIn = getToken()
|
||||
const AppRoutes: FC = () => {
|
||||
const isLoggedIn = !!getToken()
|
||||
const { data: user, isLoading } = useGetMe({ enabled: isLoggedIn })
|
||||
const profileIncomplete = isLoggedIn && needsProfileCompletion(user)
|
||||
|
||||
if (isLoggedIn && isLoading) {
|
||||
return (
|
||||
<div className='w-full h-screen flex items-center justify-center'>
|
||||
<MoonLoader size={32} color='#000' />
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
return (
|
||||
<BrowserRouter>
|
||||
{!isLoggedIn ? (
|
||||
<AuthRouter />
|
||||
) : profileIncomplete ? (
|
||||
<CompleteProfileRouter />
|
||||
) : (
|
||||
<MainRouter />
|
||||
)}
|
||||
<ToastContainer />
|
||||
</BrowserRouter>
|
||||
)
|
||||
}
|
||||
|
||||
const App: FC = () => {
|
||||
return (
|
||||
<QueryClientProvider client={queryClient}>
|
||||
<BrowserRouter>
|
||||
{isLoggedIn ? <MainRouter /> : <AuthRouter />}
|
||||
<ToastContainer />
|
||||
</BrowserRouter>
|
||||
<AppRoutes />
|
||||
</QueryClientProvider>
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user