diff --git a/web/src/app/(app)/error.tsx b/web/src/app/(app)/error.tsx new file mode 100644 index 0000000..6aa37f8 --- /dev/null +++ b/web/src/app/(app)/error.tsx @@ -0,0 +1,5 @@ +"use client"; + +import { ErrorFullPage } from "@/components/docs/ErrorPage"; + +export default ErrorFullPage; diff --git a/web/src/app/(app)/workflows/[workflow_id]/@deployment/error.tsx b/web/src/app/(app)/workflows/[workflow_id]/@deployment/error.tsx new file mode 100644 index 0000000..f4e0b58 --- /dev/null +++ b/web/src/app/(app)/workflows/[workflow_id]/@deployment/error.tsx @@ -0,0 +1,5 @@ +"use client"; + +import ErrorPage from "@/components/docs/ErrorPage"; + +export default ErrorPage; diff --git a/web/src/app/(app)/workflows/[workflow_id]/@runs/error.tsx b/web/src/app/(app)/workflows/[workflow_id]/@runs/error.tsx index 9df13d0..f4e0b58 100644 --- a/web/src/app/(app)/workflows/[workflow_id]/@runs/error.tsx +++ b/web/src/app/(app)/workflows/[workflow_id]/@runs/error.tsx @@ -1,51 +1,5 @@ "use client"; -import { Button } from "@/components/ui/button"; -import { - Card, - CardDescription, - CardHeader, - CardTitle, -} from "@/components/ui/card"; -// Error components must be Client Components -import { useEffect } from "react"; +import ErrorPage from "@/components/docs/ErrorPage"; -export default function Error({ - error, - reset, -}: { - error?: Error & { digest?: string }; - reset?: () => void; -}) { - useEffect(() => { - // Log the error to an error reporting service - console.log(error?.message); - }, [error]); - - return ( -
- - - -
Something went wrong!
-
- -
{error?.message}
- -
-
-
-
- ); -} +export default ErrorPage; diff --git a/web/src/app/(app)/workflows/[workflow_id]/@workflow/error.tsx b/web/src/app/(app)/workflows/[workflow_id]/@workflow/error.tsx new file mode 100644 index 0000000..f4e0b58 --- /dev/null +++ b/web/src/app/(app)/workflows/[workflow_id]/@workflow/error.tsx @@ -0,0 +1,5 @@ +"use client"; + +import ErrorPage from "@/components/docs/ErrorPage"; + +export default ErrorPage; diff --git a/web/src/app/(app)/workflows/[workflow_id]/layout.tsx b/web/src/app/(app)/workflows/[workflow_id]/layout.tsx index 903a3b7..bf73308 100644 --- a/web/src/app/(app)/workflows/[workflow_id]/layout.tsx +++ b/web/src/app/(app)/workflows/[workflow_id]/layout.tsx @@ -1,6 +1,3 @@ -import Error from "@/app/(app)/workflows/[workflow_id]/@runs/error"; -import { ErrorBoundary } from "@/components/ErrorBoundary"; - export default async function Layout({ children, deployment, @@ -13,15 +10,13 @@ export default async function Layout({ workflow: React.ReactNode; }) { return ( - }> -
-
- {workflow} - {deployment} -
- {runs} - {children} +
+
+ {workflow} + {deployment}
- + {runs} + {children} +
); } diff --git a/web/src/components/docs/ErrorPage.tsx b/web/src/components/docs/ErrorPage.tsx new file mode 100644 index 0000000..eb5375d --- /dev/null +++ b/web/src/components/docs/ErrorPage.tsx @@ -0,0 +1,52 @@ +"use client"; + +import { Button } from "@/components/ui/button"; +import { CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; +import { cn } from "@/lib/utils"; +// Error components must be Client Components +import { useEffect } from "react"; + +export default function ErrorPage({ + error, + reset, +}: { + error?: Error & { digest?: string }; + reset?: () => void; +}) { + useEffect(() => { + // Log the error to an error reporting service + console.log(error?.message); + }, [error]); + + return ( +
+
+ + +
Unexpected error.
+
+ +
Error: {error?.message}
+
+ +
+
+
+
+
+ ); +} + +export function ErrorFullPage() { + return ( +
+ +
+ ); +}