complete profile

This commit is contained in:
2026-07-02 21:01:20 +03:30
parent 2366f5ee02
commit f7deabd52a
11 changed files with 220 additions and 17 deletions
+31 -9
View File
@@ -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>
)
}