viewer do not need login

This commit is contained in:
hamid zarghami
2026-05-23 16:21:19 +03:30
parent 517c77af77
commit 612deba297
+48 -40
View File
@@ -1,70 +1,78 @@
import { useEffect, useState, type FC } from 'react'
import './assets/fonts/irancell/style.css'
import { BrowserRouter } from 'react-router-dom'
import MainRouter from './router/MainRouter'
import i18next from 'i18next'
import FaJson from '@/langs/fa.json'
import { I18nextProvider } from 'react-i18next'
import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
import ToastContainer from './components/Toast'
import { getToken, setRefreshToken, setToken } from './config/func'
import "react-multi-date-picker/styles/layouts/mobile.css"
import FaJson from "@/langs/fa.json";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import i18next from "i18next";
import { useEffect, useState, type FC } from "react";
import { I18nextProvider } from "react-i18next";
import "react-multi-date-picker/styles/layouts/mobile.css";
import { BrowserRouter } from "react-router-dom";
import "./assets/fonts/irancell/style.css";
import ToastContainer from "./components/Toast";
import { getToken, setRefreshToken, setToken } from "./config/func";
import { Paths } from "./config/Paths";
import MainRouter from "./router/MainRouter";
const isViewerPathname = (pathname: string) => {
const viewerPathPrefix = `${Paths.viewer}/`;
return (
pathname.startsWith(viewerPathPrefix) &&
pathname.length > viewerPathPrefix.length
);
};
i18next.init({
interpolation: { escapeValue: false },
lng: 'fa',
lng: "fa",
resources: {
fa: {
global: FaJson
}
}
})
global: FaJson,
},
},
});
const queryClient = new QueryClient()
const queryClient = new QueryClient();
const App: FC = () => {
const [isLogin, setIsLogin] = useState<'checking' | 'isLogin' | 'isNotLogin'>('checking')
const [isLogin, setIsLogin] = useState<"checking" | "isLogin" | "isNotLogin">(
"checking",
);
useEffect(() => {
// استخراج توکن‌ها از URL در صورت وجود
const urlParams = new URLSearchParams(window.location.search)
const tokenFromUrl = urlParams.get('token')
const refreshTokenFromUrl = urlParams.get('refreshToken')
const urlParams = new URLSearchParams(window.location.search);
const tokenFromUrl = urlParams.get("token");
const refreshTokenFromUrl = urlParams.get("refreshToken");
if (tokenFromUrl && refreshTokenFromUrl) {
// ذخیره توکن‌ها (جایگزین کردن توکن‌های قبلی اگر وجود داشته باشند)
setToken(tokenFromUrl)
setRefreshToken(refreshTokenFromUrl)
setToken(tokenFromUrl);
setRefreshToken(refreshTokenFromUrl);
// حذف پارامترها از URL
const newUrl = window.location.pathname
window.history.replaceState({}, '', newUrl)
const newUrl = window.location.pathname;
window.history.replaceState({}, "", newUrl);
// تنظیم وضعیت لاگین و هدایت به صفحه اصلی
setIsLogin('isLogin')
setIsLogin("isLogin");
// if (window.location.pathname === Paths.auth.login) {
// window.location.href = Paths.home
// }
return
return;
}
const token = getToken()
const token = getToken();
if (token) {
setIsLogin('isLogin')
setIsLogin("isLogin");
} else if (isViewerPathname(window.location.pathname)) {
setIsLogin("isLogin");
} else {
setIsLogin('isNotLogin')
if (window.location.href.split('auth').length === 1) {
setIsLogin("isNotLogin");
if (window.location.href.split("auth").length === 1) {
// window.location.href = Paths.auth.login
}
}
}, []);
}, [])
console.log('isLogin', isLogin);
console.log("isLogin", isLogin);
return (
<BrowserRouter>
@@ -75,7 +83,7 @@ const App: FC = () => {
</QueryClientProvider>
</I18nextProvider>
</BrowserRouter>
)
}
);
};
export default App
export default App;