Update style error boundary

Signed-off-by: gearnode <bryan@frimin.fr>
This commit is contained in:
gearnode
2025-02-12 08:57:24 -08:00
parent 2c7449ef0f
commit 9455a0a0a3
2 changed files with 80 additions and 18 deletions

View File

@@ -1,23 +1,24 @@
import { Component, ErrorInfo, ReactNode } from "react";
import { ErrorPage } from "@/pages/ErrorPage";
interface ErrorBoundaryProps {
children: ReactNode;
fallback: ReactNode;
fallback?: ReactNode;
}
interface ErrorBoundaryState {
hasError: boolean;
error: Error | undefined;
error?: Error;
}
class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
constructor(props: ErrorBoundaryProps) {
super(props);
this.state = { hasError: false, error: undefined };
this.state = { hasError: false };
}
static getDerivedStateFromError(error: Error): ErrorBoundaryState {
return { hasError: true, error: error };
return { hasError: true, error };
}
componentDidCatch(error: Error, info: ErrorInfo): void {
@@ -27,7 +28,10 @@ class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
render(): ReactNode {
if (this.state.hasError) {
return this.props.fallback;
if (this.props.fallback) {
return this.props.fallback;
}
return <ErrorPage error={this.state.error} />;
}
return this.props.children;