36 lines
763 B
TypeScript
36 lines
763 B
TypeScript
import React from "react";
|
|
|
|
type AppErrorBoundaryProps = {
|
|
children: React.ReactNode;
|
|
};
|
|
|
|
type AppErrorBoundaryState = {
|
|
hasError: boolean;
|
|
};
|
|
|
|
export default class AppErrorBoundary extends React.Component<AppErrorBoundaryProps, AppErrorBoundaryState> {
|
|
state: AppErrorBoundaryState = {
|
|
hasError: false,
|
|
};
|
|
|
|
static getDerivedStateFromError() {
|
|
return { hasError: true };
|
|
}
|
|
|
|
componentDidCatch(error: unknown, info: React.ErrorInfo) {
|
|
console.error("AppErrorBoundary caught an error", error, info);
|
|
}
|
|
|
|
render() {
|
|
if (this.state.hasError) {
|
|
return (
|
|
<div className="p-4 text-sm text-red-600">
|
|
Došlo k chybě při vykreslování stránky.
|
|
</div>
|
|
);
|
|
}
|
|
|
|
return this.props.children;
|
|
}
|
|
}
|