Files
commafeed/commafeed-client/src/components/ErrorBoundary.tsx
2022-08-15 10:08:08 +02:00

27 lines
625 B
TypeScript

import { ErrorPage } from "pages/ErrorPage"
import React, { ReactNode } from "react"
interface ErrorBoundaryProps {
children?: ReactNode
}
interface ErrorBoundaryState {
error?: Error
}
export class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
constructor(props: ErrorBoundaryProps) {
super(props)
this.state = {}
}
componentDidCatch(error: Error) {
this.setState({ error })
}
render() {
if (this.state.error) return <ErrorPage error={this.state.error} />
return this.props.children
}
}