Move listener registration to webview.tsx

This commit is contained in:
Robert
2023-03-07 15:05:49 +00:00
parent 7176f690f3
commit d8c2562bb1
5 changed files with 3 additions and 32 deletions

View File

@@ -1,4 +1,3 @@
import { useEffect } from "react";
import { getErrorMessage, getErrorStack } from "../../pure/helpers-pure";
import { vscode } from "../vscode-api";
@@ -22,17 +21,6 @@ const unhandledRejectionListener = (event: PromiseRejectionEvent) => {
});
};
/**
* A react effect that handles adding listeners for unhandled errors / rejected promises.
* When an error is detected a "unhandledError" message is posted to the view.
*/
export function useUnhandledErrorListener() {
useEffect(() => {
registerUnhandledErrorListener();
return unregisterUnhandledErrorListener;
}, []);
}
/**
* Adds listeners for unhandled errors / rejected promises.
* When an error is detected a "unhandledError" message is posted to the view.
@@ -41,11 +29,3 @@ export function registerUnhandledErrorListener() {
window.addEventListener("error", unhandledErrorListener);
window.addEventListener("unhandledrejection", unhandledRejectionListener);
}
/**
* Remove listeners for unhandled errors / rejected promises.
*/
export function unregisterUnhandledErrorListener() {
window.removeEventListener("error", unhandledErrorListener);
window.removeEventListener("unhandledrejection", unhandledRejectionListener);
}

View File

@@ -10,7 +10,6 @@ import { vscode } from "../vscode-api";
import CompareTable from "./CompareTable";
import "../results/resultsView.css";
import { useUnhandledErrorListener } from "../common/errors";
const emptyComparison: SetComparisonsMessage = {
t: "setComparisons",
@@ -24,8 +23,6 @@ const emptyComparison: SetComparisonsMessage = {
};
export function Compare(_: Record<string, never>): JSX.Element {
useUnhandledErrorListener();
const [comparison, setComparison] =
useState<SetComparisonsMessage>(emptyComparison);

View File

@@ -14,10 +14,6 @@ import {
NavigateMsg,
ResultSet,
} from "../../pure/interface-types";
import {
registerUnhandledErrorListener,
unregisterUnhandledErrorListener,
} from "../common/errors";
import { EventHandlers as EventHandlerList } from "./event-handler-list";
import { ResultTables } from "./result-tables";
@@ -311,14 +307,12 @@ export class ResultsApp extends React.Component<
componentDidMount(): void {
this.vscodeMessageHandler = this.vscodeMessageHandler.bind(this);
window.addEventListener("message", this.vscodeMessageHandler);
registerUnhandledErrorListener();
}
componentWillUnmount(): void {
if (this.vscodeMessageHandler) {
window.removeEventListener("message", this.vscodeMessageHandler);
}
unregisterUnhandledErrorListener();
}
private vscodeMessageHandler(evt: MessageEvent) {

View File

@@ -14,7 +14,6 @@ import { ToVariantAnalysisMessage } from "../../pure/interface-types";
import { vscode } from "../vscode-api";
import { defaultFilterSortState } from "../../pure/variant-analysis-filter-sort";
import { useTelemetryOnChange } from "../common/telemetry";
import { useUnhandledErrorListener } from "../common/errors";
export type VariantAnalysisProps = {
variantAnalysis?: VariantAnalysisDomainModel;
@@ -51,8 +50,6 @@ export function VariantAnalysis({
repoStates: initialRepoStates = [],
repoResults: initialRepoResults = [],
}: VariantAnalysisProps): JSX.Element {
useUnhandledErrorListener();
const [variantAnalysis, setVariantAnalysis] = useState<
VariantAnalysisDomainModel | undefined
>(initialVariantAnalysis);

View File

@@ -5,8 +5,11 @@ import { WebviewDefinition } from "./webview-definition";
// Allow all views to use Codicons
import "@vscode/codicons/dist/codicon.css";
import { registerUnhandledErrorListener } from "./common/errors";
const render = () => {
registerUnhandledErrorListener();
const element = document.getElementById("root");
if (!element) {