diff --git a/src/renderer/src/ErrorBoundary.jsx b/src/renderer/src/ErrorBoundary.tsx similarity index 71% rename from src/renderer/src/ErrorBoundary.jsx rename to src/renderer/src/ErrorBoundary.tsx index eecaef53..d2fdf94a 100644 --- a/src/renderer/src/ErrorBoundary.jsx +++ b/src/renderer/src/ErrorBoundary.tsx @@ -1,10 +1,14 @@ -import { Component } from 'react'; +import { Component, ErrorInfo, ReactNode } from 'react'; import { Trans } from 'react-i18next'; import { openSendReportDialog } from './reporting'; -class ErrorBoundary extends Component { - constructor(props) { + +class ErrorBoundary extends Component<{ children: ReactNode }> { + // eslint-disable-next-line react/state-in-constructor + override state: { error: { message: string } | undefined }; + + constructor(props: { children: ReactNode }) { super(props); this.state = { error: undefined }; } @@ -13,11 +17,11 @@ class ErrorBoundary extends Component { return { error }; } - componentDidCatch(error, errorInfo) { + override componentDidCatch(error: Error, errorInfo: ErrorInfo) { console.error('componentDidCatch', error, errorInfo); } - render() { + override render() { const { error } = this.state; if (error) { return ( diff --git a/src/renderer/src/reporting.tsx b/src/renderer/src/reporting.tsx index 33f10543..032fc36b 100644 --- a/src/renderer/src/reporting.tsx +++ b/src/renderer/src/reporting.tsx @@ -22,7 +22,7 @@ const linkStyle: CSSProperties = { fontWeight: 'bold', cursor: 'pointer' }; // eslint-disable-next-line import/prefer-default-export -export function openSendReportDialog(err: unknown | undefined, state: unknown) { +export function openSendReportDialog(err: unknown | undefined, state?: unknown) { const reportInstructions = isStoreBuild ? (