coreui 소스를 ts 로 전환
This commit is contained in:
60
src/App.tsx
Normal file
60
src/App.tsx
Normal file
@@ -0,0 +1,60 @@
|
||||
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 (
|
||||
<HashRouter>
|
||||
<Suspense
|
||||
fallback={
|
||||
<div className="pt-3 text-center">
|
||||
<CSpinner color="primary" variant="grow" />
|
||||
</div>
|
||||
}
|
||||
>
|
||||
<Routes>
|
||||
<Route path="/login" element={<Login />} />
|
||||
<Route path="/register" element={<Register />} />
|
||||
<Route path="/404" element={<Page404 />} />
|
||||
<Route path="/500" element={<Page500 />} />
|
||||
<Route path="*" element={<DefaultLayout />} />
|
||||
</Routes>
|
||||
</Suspense>
|
||||
</HashRouter>
|
||||
)
|
||||
}
|
||||
|
||||
export default App
|
||||
Reference in New Issue
Block a user