Review
Lazy reefer telemetry route with chunk boundaries
The cold-chain ops shell was shipping MapLibre + chart deps on every login. Code-split the reefer telemetry map behind React.lazy and wrap the route in a dedicated ErrorBoundary (chunk/render failures) outside Suspense (loading skeleton) so a bad deploy of that chunk does not blank the whole dispatcher app.
ReactTier 2reactcode-splittingerror-handling
Click a line to flag it, pick one or more labels, then submit. If the change looks correct, approve it.
src/routes/fleet/ReeferTelemetryRoute.tsx+24-2
| 1 | - | import { ReeferTelemetryMap } from "../../pages/fleet/ReeferTelemetryMap"; | |
| 1 | + | import { lazy, Suspense } from "react"; | |
| 2 | + | import { ErrorBoundary } from "react-error-boundary"; | |
| 2 | 3 | import { Route } from "react-router-dom"; | |
| 4 | + | import { ReeferChunkError } from "./ReeferChunkError"; | |
| 5 | + | import { ReeferMapSkeleton } from "./ReeferMapSkeleton"; | |
| 3 | 6 | ||
| 7 | + | const ReeferTelemetryMap = lazy(() => | |
| 8 | + | import("../../pages/fleet/ReeferTelemetryMap").then((m) => ({ | |
| 9 | + | default: m.ReeferTelemetryMap, | |
| 10 | + | })), | |
| 11 | + | ); | |
| 4 | 12 | ||
| 5 | 13 | export function reeferTelemetryRoute() { | |
| 6 | - | return <Route path="telemetry" element={<ReeferTelemetryMap />} />; | |
| 14 | + | return ( | |
| 15 | + | <Route | |
| 16 | + | path="telemetry" | |
| 17 | + | element={ | |
| 18 | + | <ErrorBoundary | |
| 19 | + | FallbackComponent={ReeferChunkError} | |
| 20 | + | onReset={() => window.location.reload()} | |
| 21 | + | > | |
| 22 | + | <Suspense fallback={<ReeferMapSkeleton />}> | |
| 23 | + | <ReeferTelemetryMap /> | |
| 24 | + | </Suspense> | |
| 25 | + | </ErrorBoundary> | |
| 26 | + | } | |
| 27 | + | /> | |
| 28 | + | ); | |
| 7 | 29 | } |