Skip to content

Commit 2cb6a95

Browse files
Move handleMessage and componentDidMount to be before render method
1 parent c0568a8 commit 2cb6a95

File tree

1 file changed

+34
-34
lines changed

1 file changed

+34
-34
lines changed

extensions/ql-vscode/src/view/results/ResultTables.tsx

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,40 @@ export class ResultTables extends React.Component<
139139
};
140140
}
141141

142+
handleMessage(msg: IntoResultsViewMsg): void {
143+
switch (msg.t) {
144+
case "untoggleShowProblems":
145+
this.setState({
146+
problemsViewSelected: false,
147+
});
148+
break;
149+
150+
default:
151+
// noop
152+
}
153+
}
154+
155+
private vscodeMessageHandler(evt: MessageEvent) {
156+
// sanitize origin
157+
const origin = evt.origin.replace(/\n|\r/g, "");
158+
evt.origin === window.origin
159+
? this.handleMessage(evt.data as IntoResultsViewMsg)
160+
: console.error(`Invalid event origin ${origin}`);
161+
}
162+
163+
// TODO: Duplicated from results.tsx consider a way to
164+
// avoid this duplication
165+
componentDidMount(): void {
166+
this.vscodeMessageHandler = this.vscodeMessageHandler.bind(this);
167+
window.addEventListener("message", this.vscodeMessageHandler);
168+
}
169+
170+
componentWillUnmount(): void {
171+
if (this.vscodeMessageHandler) {
172+
window.removeEventListener("message", this.vscodeMessageHandler);
173+
}
174+
}
175+
142176
componentDidUpdate(
143177
prevProps: Readonly<ResultTablesProps>,
144178
prevState: Readonly<ResultTablesState>,
@@ -293,40 +327,6 @@ export class ResultTables extends React.Component<
293327
</div>
294328
);
295329
}
296-
297-
handleMessage(msg: IntoResultsViewMsg): void {
298-
switch (msg.t) {
299-
case "untoggleShowProblems":
300-
this.setState({
301-
problemsViewSelected: false,
302-
});
303-
break;
304-
305-
default:
306-
// noop
307-
}
308-
}
309-
310-
private vscodeMessageHandler(evt: MessageEvent) {
311-
// sanitize origin
312-
const origin = evt.origin.replace(/\n|\r/g, "");
313-
evt.origin === window.origin
314-
? this.handleMessage(evt.data as IntoResultsViewMsg)
315-
: console.error(`Invalid event origin ${origin}`);
316-
}
317-
318-
// TODO: Duplicated from results.tsx consider a way to
319-
// avoid this duplication
320-
componentDidMount(): void {
321-
this.vscodeMessageHandler = this.vscodeMessageHandler.bind(this);
322-
window.addEventListener("message", this.vscodeMessageHandler);
323-
}
324-
325-
componentWillUnmount(): void {
326-
if (this.vscodeMessageHandler) {
327-
window.removeEventListener("message", this.vscodeMessageHandler);
328-
}
329-
}
330330
}
331331

332332
function getDefaultResultSet(resultSets: readonly ResultSet[]): string {

0 commit comments

Comments
 (0)