Reduced code duplication of ErrorBoundary, wrapped PageLayout with ErrorBoundary.

This commit is contained in:
Dan Ditomaso
2025-03-03 20:33:05 -05:00
parent 5af5364668
commit dbad25814c
2 changed files with 11 additions and 29 deletions
+5 -25
View File
@@ -17,31 +17,11 @@ export const PageRouter = () => {
const { activePage } = useDevice();
return (
<ErrorBoundary FallbackComponent={ErrorPage}>
{activePage === "messages" && (
<ErrorBoundary FallbackComponent={ErrorPage}>
<MessagesPage />
</ErrorBoundary>
)}
{activePage === "map" && (
<ErrorBoundary FallbackComponent={ErrorPage}>
<MapPage />
</ErrorBoundary>
)}
{activePage === "config" && (
<ErrorBoundary FallbackComponent={ErrorPage}>
<ConfigPage />
</ErrorBoundary>
)}
{activePage === "channels" && (
<ErrorBoundary FallbackComponent={ErrorPage}>
<ChannelsPage />
</ErrorBoundary>
)}
{activePage === "nodes" && (
<ErrorBoundary FallbackComponent={ErrorPage}>
<NodesPage />
</ErrorBoundary>
)}
{activePage === "messages" && <MessagesPage />}
{activePage === "map" && <MapPage />}
{activePage === "config" && <ConfigPage />}
{activePage === "channels" && <ChannelsPage />}
{activePage === "nodes" && <NodesPage />}
</ErrorBoundary>
);
};
+6 -4
View File
@@ -1,7 +1,9 @@
import { cn } from "@app/core/utils/cn.ts";
import { AlignLeftIcon, type LucideIcon } from "lucide-react";
import Footer from "./UI/Footer.tsx";
import { Spinner } from "./UI/Spinner.tsx";
import Footer from "@components/UI/Footer.tsx";
import { Spinner } from "@components/UI/Spinner.tsx";
import { ErrorBoundary } from "react-error-boundary";
import { ErrorPage } from "@components/UI/ErrorPage.tsx";
export interface PageLayoutProps {
label: string;
@@ -23,7 +25,7 @@ export const PageLayout = ({
children,
}: PageLayoutProps) => {
return (
<>
<ErrorBoundary FallbackComponent={ErrorPage}>
<div className="relative flex h-full w-full flex-col">
<div className="flex h-14 shrink-0 border-b-[0.5px] border-slate-300 dark:border-slate-700 md:h-16 md:px-4">
<button
@@ -66,6 +68,6 @@ export const PageLayout = ({
<Footer />
</div>
</div>
</>
</ErrorBoundary>
);
};