Move listener registration to webview.tsx
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user