import './style/global.less'; import React, {useEffect} from 'react'; import ReactDOM from 'react-dom'; import {ConfigProvider} from '@arco-design/web-react'; import zhCN from '@arco-design/web-react/es/locale/zh-CN'; import enUS from '@arco-design/web-react/es/locale/en-US'; import {BrowserRouter, Switch, Route} from 'react-router-dom'; import PageLayout from './layout'; import {GlobalContext} from './context'; import Login from './pages/login'; import checkLogin from './utils/checkLogin'; import changeTheme from './utils/changeTheme'; import useStorage from './utils/useStorage'; import {QueryClientProvider, QueryClient} from 'react-query'; import {useStore} from '@/store'; const queryClient = new QueryClient({ defaultOptions: { queries: { retry: 0, refetchOnWindowFocus: false, keepPreviousData: true }, } }); function Index() { const [lang, setLang] = useStorage('arco-lang', 'zh-CN'); const [theme, setTheme] = useStorage('arco-theme', 'light'); const {fetchUserInfo, init} = useStore(); function getArcoLocale() { switch (lang) { case 'zh-CN': return zhCN; case 'en-US': return enUS; default: return zhCN; } } useEffect(() => { init(); if (checkLogin()) { fetchUserInfo(); } else if (window.location.pathname.replace(/\//g, '') !== 'login') { window.location.pathname = '/login'; } }, []); useEffect(() => { changeTheme(theme); }, [theme]); const contextValue = { lang, setLang, theme, setTheme }; return ( ); } ReactDOM.render(, document.getElementById('root'));