Skip to content

Commit 326653e

Browse files
committed
Fix missing dependencies and cleanup of addEventListener
This will implement ebba994 and d18e3dd for the `Compare` and `RemoteQueries` views. These should not be impacted in the same way as the `VariantAnalysis` view, but this will make them consistent and more resilient to future changes.
1 parent 0d057ae commit 326653e

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

extensions/ql-vscode/src/view/compare/Compare.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export function Compare(_: Record<string, never>): JSX.Element {
3131
const hasRows = comparison.rows && (comparison.rows.to.length || comparison.rows.from.length);
3232

3333
useEffect(() => {
34-
window.addEventListener('message', (evt: MessageEvent) => {
34+
const listener = (evt: MessageEvent) => {
3535
if (evt.origin === window.origin) {
3636
const msg: ToCompareViewMessage = evt.data;
3737
switch (msg.t) {
@@ -43,8 +43,13 @@ export function Compare(_: Record<string, never>): JSX.Element {
4343
const origin = evt.origin.replace(/\n|\r/g, '');
4444
console.error(`Invalid event origin ${origin}`);
4545
}
46-
});
47-
});
46+
};
47+
window.addEventListener('message', listener);
48+
49+
return () => {
50+
window.removeEventListener('message', listener);
51+
};
52+
}, []);
4853
if (!comparison) {
4954
return <div>Waiting for results to load.</div>;
5055
}

extensions/ql-vscode/src/view/remote-queries/RemoteQueries.tsx

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ export function RemoteQueries(): JSX.Element {
395395
const [sort, setSort] = useState<Sort>('name');
396396

397397
useEffect(() => {
398-
window.addEventListener('message', (evt: MessageEvent) => {
398+
const listener = (evt: MessageEvent) => {
399399
if (evt.origin === window.origin) {
400400
const msg: ToRemoteQueriesMessage = evt.data;
401401
if (msg.t === 'setRemoteQueryResult') {
@@ -408,8 +408,13 @@ export function RemoteQueries(): JSX.Element {
408408
const origin = evt.origin.replace(/\n|\r/g, '');
409409
console.error(`Invalid event origin ${origin}`);
410410
}
411-
});
412-
});
411+
};
412+
window.addEventListener('message', listener);
413+
414+
return () => {
415+
window.removeEventListener('message', listener);
416+
};
417+
}, []);
413418

414419
if (!queryResult) {
415420
return <div>Waiting for results to load.</div>;

0 commit comments

Comments
 (0)