remove hard reload
deploy to danak / build_and_deploy (push) Has been cancelled

This commit is contained in:
2026-07-03 17:16:11 +03:30
parent c22c37894c
commit 8cab9d04c8
13 changed files with 111 additions and 37 deletions
+14 -12
View File
@@ -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 ? (