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' i18next.init({ interpolation: { escapeValue: false }, lng: 'fa', resources: { fa: { global: FaJson } } }) const queryClient = new QueryClient() const App: FC = () => { 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') if (tokenFromUrl && refreshTokenFromUrl) { // ذخیره توکن‌ها (جایگزین کردن توکن‌های قبلی اگر وجود داشته باشند) setToken(tokenFromUrl) setRefreshToken(refreshTokenFromUrl) // حذف پارامترها از URL const newUrl = window.location.pathname window.history.replaceState({}, '', newUrl) // تنظیم وضعیت لاگین و هدایت به صفحه اصلی setIsLogin('isLogin') // if (window.location.pathname === Paths.auth.login) { // window.location.href = Paths.home // } return } const token = getToken() if (token) { setIsLogin('isLogin') } else { setIsLogin('isNotLogin') if (window.location.href.split('auth').length === 1) { // window.location.href = Paths.auth.login } } }, []) console.log('isLogin', isLogin); return ( ) } export default App