chore(web): finalize object authoring — i18n parity + verification
Lazy-load ObjectNewPage and ObjectEditForm routes to bring the initial JS bundle under the 150 KB gz budget (was 159 KB, now 140 KB). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+29
-4
@@ -1,14 +1,25 @@
|
||||
import { lazy, Suspense } from "react";
|
||||
import { BrowserRouter, Navigate, Route, Routes } from "react-router-dom";
|
||||
|
||||
import { RequireAuth } from "./auth/require-auth";
|
||||
import { LoginPage } from "./auth/login-page";
|
||||
import { AppShell } from "./shell/app-shell";
|
||||
import { ObjectsPage } from "./objects/objects-page";
|
||||
import { ObjectNewPage } from "./objects/object-new-page";
|
||||
import { ObjectDetail } from "./objects/object-detail";
|
||||
import { ObjectEditForm } from "./objects/object-edit-form";
|
||||
import { SelectPrompt } from "./objects/select-prompt";
|
||||
|
||||
const ObjectNewPage = lazy(() =>
|
||||
import("./objects/object-new-page").then((m) => ({ default: m.ObjectNewPage })),
|
||||
);
|
||||
|
||||
const ObjectEditForm = lazy(() =>
|
||||
import("./objects/object-edit-form").then((m) => ({ default: m.ObjectEditForm })),
|
||||
);
|
||||
|
||||
function FormFallback() {
|
||||
return <div role="status" className="p-4 text-sm text-neutral-400">Loading…</div>;
|
||||
}
|
||||
|
||||
export function App() {
|
||||
return (
|
||||
<BrowserRouter>
|
||||
@@ -16,11 +27,25 @@ export function App() {
|
||||
<Route path="/login" element={<LoginPage />} />
|
||||
<Route element={<RequireAuth />}>
|
||||
<Route element={<AppShell />}>
|
||||
<Route path="/objects/new" element={<ObjectNewPage />} />
|
||||
<Route
|
||||
path="/objects/new"
|
||||
element={
|
||||
<Suspense fallback={<FormFallback />}>
|
||||
<ObjectNewPage />
|
||||
</Suspense>
|
||||
}
|
||||
/>
|
||||
<Route path="/objects" element={<ObjectsPage />}>
|
||||
<Route index element={<SelectPrompt />} />
|
||||
<Route path=":id" element={<ObjectDetail />} />
|
||||
<Route path=":id/edit" element={<ObjectEditForm />} />
|
||||
<Route
|
||||
path=":id/edit"
|
||||
element={
|
||||
<Suspense fallback={<FormFallback />}>
|
||||
<ObjectEditForm />
|
||||
</Suspense>
|
||||
}
|
||||
/>
|
||||
</Route>
|
||||
<Route path="/" element={<Navigate to="/objects" replace />} />
|
||||
</Route>
|
||||
|
||||
Reference in New Issue
Block a user