This commit is contained in:
+14
-12
@@ -6,11 +6,13 @@ import { BrowserRouter } from 'react-router-dom'
|
||||
import { QueryCache, QueryClient, QueryClientProvider } from '@tanstack/react-query'
|
||||
import MainRouter from './router/MainRouter'
|
||||
import ToastContainer from './components/Toast'
|
||||
import { getRefreshToken, getToken, removeRefreshToken, removeToken, setRefreshToken, setToken } from './config/func';
|
||||
import { getRefreshToken, 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 { useSessionAuth } from './config/sessionAuth';
|
||||
import { appNavigate, AppNavigation } from './config/navigation';
|
||||
import { refreshToken } from './pages/auth/service/AuthService';
|
||||
import { useGetMe } from './pages/user/hooks/useUserData';
|
||||
import { needsProfileCompletion } from './pages/user/utils/profileUtils';
|
||||
@@ -38,9 +40,9 @@ const queryClient = new QueryClient({
|
||||
// اگر خطا از refresh endpoint است، refresh token منقضی شده
|
||||
if (isRefreshEndpoint) {
|
||||
window.isRefreshTokenExpired = true;
|
||||
await removeToken();
|
||||
await removeRefreshToken();
|
||||
window.location.href = Paths.auth.login;
|
||||
useSessionAuth.getState().clearSession();
|
||||
queryClient.clear();
|
||||
appNavigate(Paths.auth.login, { replace: true });
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -67,9 +69,9 @@ const queryClient = new QueryClient({
|
||||
|
||||
if (!refreshTokenValue) {
|
||||
window.isRefreshTokenExpired = true;
|
||||
await removeToken();
|
||||
await removeRefreshToken();
|
||||
window.location.href = Paths.auth.login;
|
||||
useSessionAuth.getState().clearSession();
|
||||
queryClient.clear();
|
||||
appNavigate(Paths.auth.login, { replace: true });
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -108,10 +110,9 @@ const queryClient = new QueryClient({
|
||||
window.isRefreshTokenExpired = true;
|
||||
}
|
||||
|
||||
// Clear tokens and redirect to login
|
||||
await removeToken();
|
||||
await removeRefreshToken();
|
||||
window.location.href = Paths.auth.login;
|
||||
useSessionAuth.getState().clearSession();
|
||||
queryClient.clear();
|
||||
appNavigate(Paths.auth.login, { replace: true });
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -126,7 +127,7 @@ const queryClient = new QueryClient({
|
||||
});
|
||||
|
||||
const AppRoutes: FC = () => {
|
||||
const isLoggedIn = !!getToken()
|
||||
const isLoggedIn = useSessionAuth((state) => state.isAuthenticated)
|
||||
const { data: user, isLoading } = useGetMe({ enabled: isLoggedIn })
|
||||
const profileIncomplete = isLoggedIn && needsProfileCompletion(user)
|
||||
|
||||
@@ -140,6 +141,7 @@ const AppRoutes: FC = () => {
|
||||
|
||||
return (
|
||||
<BrowserRouter>
|
||||
<AppNavigation />
|
||||
{!isLoggedIn ? (
|
||||
<AuthRouter />
|
||||
) : profileIncomplete ? (
|
||||
|
||||
Reference in New Issue
Block a user