All files / src App.js

0% Statements 0/17
0% Branches 0/6
0% Functions 0/5
0% Lines 0/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52                                                                                                       
import React, { Suspense, useEffect } from 'react'
import { HashRouter, Route, Routes } from 'react-router-dom'
import { useSelector } from 'react-redux'
 
import { CSpinner, useColorModes } from '@coreui/react'
import './scss/style.scss'
 
// Containers
const DefaultLayout = React.lazy(() => import('./layout/DefaultLayout'))
 
// Pages
const Login = React.lazy(() => import('./views/login/Login'))
 
const App = () => {
	const { isColorModeSet, setColorMode } = useColorModes('coreui-free-react-admin-template-theme')
	const storedTheme = useSelector((state) => state.theme)
 
	useEffect(() => {
		const urlParams = new URLSearchParams(window.location.href.split('?')[1])
		const theme = urlParams.get('theme') && urlParams.get('theme').match(/^[A-Za-z0-9\s]+/)[0]
		
		if (theme) {
			setColorMode(theme)
		}
 
		if (isColorModeSet()) {
			return
		}
 
		setColorMode(storedTheme)
	}, [])
 
	return (
		<HashRouter>
			<Suspense
				fallback={
				<div className="pt-3 text-center">
					<CSpinner color="primary" variant="grow" />
				</div>
				}
			>
				<Routes>
					<Route exact path="/login" name="Login Page" element={<Login />} />
					<Route path="*" name="Home" element={<DefaultLayout />} />
				</Routes>
			</Suspense>
		</HashRouter>
	)
}
 
export default App