Files
ota-admin-portal/src/components/ErrorBoundary.jsx
2021-01-05 09:43:05 -08:00

25 lines
682 B
JavaScript

import React, { Component } from 'react';
import PropTypes from 'prop-types';
export default class ErrorBoundary extends Component {
state = {
error: '',
errorInfo: '',
hasError: false,
};
static getDerivedStateFromError(error) {
return { hasError: true, error };
}
componentDidCatch(error, errorInfo) {
// eslint-disable-next-line no-console
console.log({ error, errorInfo });
this.setState({ errorInfo });
}
render() {
if (this.state.hasError) return (<h1>Oops. An Error Occured</h1>);
return this.props.children;
}
}
ErrorBoundary.propTypes = {
children: PropTypes.oneOfType([ PropTypes.object, PropTypes.array ]).isRequired,
};