+
+ Something went wrong.
+
+ The application encountered an unexpected error.
+
+
+
+
+
+
+ );
+ }
+
+ return this.props.children;
+ }
+}
+
+ErrorBoundary.propTypes = {
+ children: PropTypes.node,
+};
+
+export default ErrorBoundary;
diff --git a/packages/react/src/views/ErrorBoundary/ErrorBoundary.styles.js b/packages/react/src/views/ErrorBoundary/ErrorBoundary.styles.js
new file mode 100644
index 0000000000..0efdc456f3
--- /dev/null
+++ b/packages/react/src/views/ErrorBoundary/ErrorBoundary.styles.js
@@ -0,0 +1,31 @@
+import { css } from '@emotion/react';
+
+export const styles = {
+ errorContainer: css`
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ height: 100%;
+ width: 100%;
+ padding: 2rem;
+ text-align: center;
+ background-color: inherit;
+ color: inherit;
+ `,
+ icon: css`
+ margin-bottom: 1rem;
+ `,
+ heading: css`
+ margin-bottom: 0.5rem;
+ font-size: 1.25rem;
+ `,
+ text: css`
+ margin-bottom: 1.5rem;
+ opacity: 0.8;
+ `,
+ buttons: css`
+ display: flex;
+ gap: 1rem;
+ `,
+};
diff --git a/packages/react/src/views/ErrorBoundary/ErrorBoundary.test.js b/packages/react/src/views/ErrorBoundary/ErrorBoundary.test.js
new file mode 100644
index 0000000000..0d1906991c
--- /dev/null
+++ b/packages/react/src/views/ErrorBoundary/ErrorBoundary.test.js
@@ -0,0 +1,38 @@
+import React from 'react';
+import { render, screen, fireEvent } from '@testing-library/react';
+import { ErrorBoundary } from './index';
+
+const ProblemChild = () => {
+ throw new Error('Test Error');
+};
+
+describe('ErrorBoundary', () => {
+ beforeEach(() => {
+ jest.spyOn(console, 'error').mockImplementation(() => {});
+ });
+
+ afterEach(() => {
+ console.error.mockRestore();
+ });
+
+ test('renders children if no error', () => {
+ render(
+