import React, { Suspense, useEffect } from 'react' import { HashRouter, Route, Routes } from 'react-router-dom' import { useSelector } from 'react-redux' import { RootState } from './store' import { CSpinner, useColorModes } from '@coreui/react' import './scss/style.scss' // We use those styles to show code examples, you should remove them in your application. import './scss/examples.scss' // Containers const DefaultLayout = React.lazy(() => import('./layout/DefaultLayout')) // Pages const Login = React.lazy(() => import('./views/pages/login/Login')) const Register = React.lazy(() => import('./views/pages/register/Register')) const Page404 = React.lazy(() => import('./views/pages/page404/Page404')) const Page500 = React.lazy(() => import('./views/pages/page500/Page500')) const App = () => { const { isColorModeSet, setColorMode } = useColorModes('coreui-free-react-admin-template-theme') const storedTheme = useSelector((state: RootState) => state.theme) useEffect(() => { const urlParams = new URLSearchParams(window.location.href.split('?')[1]) const theme = urlParams.get('theme')?.match(/^[A-Za-z0-9\s]+/)?.[0] if (theme) { setColorMode(theme) } if (isColorModeSet()) { return } setColorMode(storedTheme) }, []) // eslint-disable-line react-hooks/exhaustive-deps return ( } > } /> } /> } /> } /> } /> ) } export default App