Files
dpage-editor/src/App.tsx
T
hamid zarghami 07a05e770b direct login
2026-03-12 12:57:01 +03:30

79 lines
2.2 KiB
TypeScript

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 (
<BrowserRouter>
<I18nextProvider i18n={i18next}>
<QueryClientProvider client={queryClient}>
<MainRouter />
<ToastContainer />
</QueryClientProvider>
</I18nextProvider>
</BrowserRouter>
)
}
export default App