all repos — snow-editor @ 13d855e25e8510a57608b0ce77f62cbeed372d0e

small and cozy markdown, and orgmode editor

src/App.jsx (view raw)

 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
import { lazy, Suspense } from 'react';
import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom';
import LocalEditorPage from './pages/LocalEditorPage.jsx';
import { STR } from './lib/strings.js';

const SharedViewPage = lazy(() => import('./pages/SharedViewPage.jsx'));
const SharedEditPage = lazy(() => import('./pages/SharedEditPage.jsx'));

function RouteFallback() {
  return (
    <div className="app">
      <p className="page-loading">{STR.LOADING_DOCUMENT}</p>
    </div>
  );
}

export default function App() {
  return (
    <BrowserRouter>
      <Suspense fallback={<RouteFallback />}>
        <Routes>
          <Route path="/" element={<LocalEditorPage />} />
          <Route path="/v/:token" element={<SharedViewPage />} />
          <Route path="/e/:token" element={<SharedEditPage />} />
          <Route path="*" element={<Navigate to="/" replace />} />
        </Routes>
      </Suspense>
    </BrowserRouter>
  );
}