snow-editor

small markdown and org-mode editor
Log | Files | Refs | README

App.jsx (954B)


      1 import { lazy, Suspense } from 'react';
      2 import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom';
      3 import LocalEditorPage from './pages/LocalEditorPage.jsx';
      4 import { STR } from './lib/strings.js';
      5 
      6 const SharedViewPage = lazy(() => import('./pages/SharedViewPage.jsx'));
      7 const SharedEditPage = lazy(() => import('./pages/SharedEditPage.jsx'));
      8 
      9 function RouteFallback() {
     10   return (
     11     <div className="app">
     12       <p className="page-loading">{STR.LOADING_DOCUMENT}</p>
     13     </div>
     14   );
     15 }
     16 
     17 export default function App() {
     18   return (
     19     <BrowserRouter>
     20       <Suspense fallback={<RouteFallback />}>
     21         <Routes>
     22           <Route path="/" element={<LocalEditorPage />} />
     23           <Route path="/v/:token" element={<SharedViewPage />} />
     24           <Route path="/e/:token" element={<SharedEditPage />} />
     25           <Route path="*" element={<Navigate to="/" replace />} />
     26         </Routes>
     27       </Suspense>
     28     </BrowserRouter>
     29   );
     30 }