123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import {Component} from 'react';
- import RouteError from 'sentry/views/routeError';
- type State = {
- error: Error | undefined;
- hasError: boolean;
- };
- export default function errorHandler<P>(WrappedComponent: React.ComponentType<P>) {
- class ErrorHandler extends Component<P, State> {
- static getDerivedStateFromError(error: Error) {
-
- return {
- hasError: true,
- error,
- };
- }
- state: State = {
-
-
- hasError: false,
- error: undefined,
- };
- componentDidCatch(_error: Error, info: React.ErrorInfo) {
-
- console.error(
- 'Component stack trace caught in <ErrorHandler />:',
- info.componentStack
- );
- }
- render() {
- if (this.state.hasError) {
- return <RouteError error={this.state.error} />;
- }
- return <WrappedComponent {...this.props} />;
- }
- }
- return ErrorHandler;
- }
|