diff options
author | Jamie Guthrie <jamie.guthrie@gmail.com> | 2023-08-19 23:07:33 +0200 |
---|---|---|
committer | Jamie Guthrie <jamie.guthrie@gmail.com> | 2023-08-19 23:07:33 +0200 |
commit | c2402bac156703bc5d80fd6c166cafefcb435b1a (patch) | |
tree | b736b1f259ff61d92d4ab81e440f9b6138aed886 /modern/src/ErrorBoundary.jsx | |
parent | 5a3c8d0ed1ecdce69963e79c95d4f910d86e0537 (diff) | |
parent | 296db114132a395b0743732f04bd6ddf6b4edf0f (diff) | |
download | trackermap-web-c2402bac156703bc5d80fd6c166cafefcb435b1a.tar.gz trackermap-web-c2402bac156703bc5d80fd6c166cafefcb435b1a.tar.bz2 trackermap-web-c2402bac156703bc5d80fd6c166cafefcb435b1a.zip |
Merge branch 'master' into add_country_flags
# Conflicts:
# modern/package-lock.json
Diffstat (limited to 'modern/src/ErrorBoundary.jsx')
-rw-r--r-- | modern/src/ErrorBoundary.jsx | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/modern/src/ErrorBoundary.jsx b/modern/src/ErrorBoundary.jsx new file mode 100644 index 00000000..93a6fe0f --- /dev/null +++ b/modern/src/ErrorBoundary.jsx @@ -0,0 +1,35 @@ +import React from 'react'; +import { Alert } from '@mui/material'; + +class ErrorBoundary extends React.Component { + constructor(props) { + super(props); + this.state = { + error: null, + }; + } + + static getDerivedStateFromError(error) { + return { error }; + } + + /* eslint-disable react/no-danger */ + render() { + const { error } = this.state; + if (error) { + return ( + <Alert severity="error"> + <code + dangerouslySetInnerHTML={{ + __html: error.stack.replaceAll('\n', '<br>').replaceAll(' ', ' '), + }} + /> + </Alert> + ); + } + const { children } = this.props; + return children; + } +} + +export default ErrorBoundary; |