| import React from 'react'; |
| import { HashRouter as Router, Routes, Route } from 'react-router-dom'; |
| import DebugUMAP from './components/DebugUMAP'; |
| import './App.css'; |
|
|
| const FontMap = React.lazy(() => import('./components/FontMap/').then(module => ({ default: module.FontMap }))); |
| const FontMapV2 = React.lazy(() => import('./components/FontMapV2/FontMapV2')); |
|
|
| function FullPageSpinner() { |
| return ( |
| <div style={{ |
| position: 'fixed', inset: 0, |
| display: 'flex', alignItems: 'center', justifyContent: 'center', |
| background: 'rgba(0, 0, 0, 0.6)', |
| zIndex: 99999 |
| }}> |
| <div style={{ |
| width: 32, height: 32, |
| border: '3px solid rgba(255,255,255,0.2)', |
| borderTop: '3px solid #fff', |
| borderRadius: '50%', |
| animation: 'spin 0.8s linear infinite' |
| }} /> |
| </div> |
| ); |
| } |
|
|
| function App() { |
| return ( |
| <Router> |
| <Routes> |
| <Route path="/debug-umap" element={<DebugUMAP />} /> |
| <Route path="/v2" element={ |
| <React.Suspense fallback={<FullPageSpinner />}> |
| <FontMapV2 /> |
| </React.Suspense> |
| } /> |
| <Route path="/" element={ |
| <React.Suspense fallback={<FullPageSpinner />}> |
| <FontMap /> |
| </React.Suspense> |
| } /> |
| </Routes> |
| </Router> |
| ); |
| } |
|
|
| export default App; |
|
|