Fix missing dependencies and cleanup of addEventListener
This will implementebba9949a8andd18e3dd40efor 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.
This commit is contained in:
@@ -31,7 +31,7 @@ export function Compare(_: Record<string, never>): JSX.Element {
|
|||||||
const hasRows = comparison.rows && (comparison.rows.to.length || comparison.rows.from.length);
|
const hasRows = comparison.rows && (comparison.rows.to.length || comparison.rows.from.length);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
window.addEventListener('message', (evt: MessageEvent) => {
|
const listener = (evt: MessageEvent) => {
|
||||||
if (evt.origin === window.origin) {
|
if (evt.origin === window.origin) {
|
||||||
const msg: ToCompareViewMessage = evt.data;
|
const msg: ToCompareViewMessage = evt.data;
|
||||||
switch (msg.t) {
|
switch (msg.t) {
|
||||||
@@ -43,8 +43,13 @@ export function Compare(_: Record<string, never>): JSX.Element {
|
|||||||
const origin = evt.origin.replace(/\n|\r/g, '');
|
const origin = evt.origin.replace(/\n|\r/g, '');
|
||||||
console.error(`Invalid event origin ${origin}`);
|
console.error(`Invalid event origin ${origin}`);
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
});
|
window.addEventListener('message', listener);
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
window.removeEventListener('message', listener);
|
||||||
|
};
|
||||||
|
}, []);
|
||||||
if (!comparison) {
|
if (!comparison) {
|
||||||
return <div>Waiting for results to load.</div>;
|
return <div>Waiting for results to load.</div>;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -395,7 +395,7 @@ export function RemoteQueries(): JSX.Element {
|
|||||||
const [sort, setSort] = useState<Sort>('name');
|
const [sort, setSort] = useState<Sort>('name');
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
window.addEventListener('message', (evt: MessageEvent) => {
|
const listener = (evt: MessageEvent) => {
|
||||||
if (evt.origin === window.origin) {
|
if (evt.origin === window.origin) {
|
||||||
const msg: ToRemoteQueriesMessage = evt.data;
|
const msg: ToRemoteQueriesMessage = evt.data;
|
||||||
if (msg.t === 'setRemoteQueryResult') {
|
if (msg.t === 'setRemoteQueryResult') {
|
||||||
@@ -408,8 +408,13 @@ export function RemoteQueries(): JSX.Element {
|
|||||||
const origin = evt.origin.replace(/\n|\r/g, '');
|
const origin = evt.origin.replace(/\n|\r/g, '');
|
||||||
console.error(`Invalid event origin ${origin}`);
|
console.error(`Invalid event origin ${origin}`);
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
});
|
window.addEventListener('message', listener);
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
window.removeEventListener('message', listener);
|
||||||
|
};
|
||||||
|
}, []);
|
||||||
|
|
||||||
if (!queryResult) {
|
if (!queryResult) {
|
||||||
return <div>Waiting for results to load.</div>;
|
return <div>Waiting for results to load.</div>;
|
||||||
|
|||||||
Reference in New Issue
Block a user