ToolJet/frontend/src/Editor/ErrorBoundary.jsx
Nakul Nagargade 34a8d1e172
Add Safety check in RealtimeAvatar (#8281)
* Add safety checks

* Add optional chaining to prevent reading undefined data

* Add sentry's error boundary

* Add sentry's error boundary

* Add sentry tag for segrating component error type
2023-12-12 17:45:54 +05:30

30 lines
845 B
JavaScript

import React, { Component } from 'react';
import { withTranslation } from 'react-i18next';
import * as Sentry from '@sentry/react';
class ErrorBoundary extends Component {
constructor(props) {
super(props);
this.state = { hasError: false };
}
// eslint-disable-next-line no-unused-vars
static getDerivedStateFromError(error) {
// Update state so the next render will show the fallback UI.
return { hasError: true };
}
componentDidCatch(error, errorInfo) {
// You can also log the error to an error reporting service
console.log(error, errorInfo);
}
render() {
return (
<Sentry.ErrorBoundary fallback={<h2>{this.props.t('errorBoundary', 'Something went wrong.')}</h2>}>
{this.props.children}
</Sentry.ErrorBoundary>
);
}
}
export default withTranslation()(ErrorBoundary);