Skip to content

Commit dd1bc3d

Browse files
committed
create new event listeners when url changes
1 parent 38442ea commit dd1bc3d

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/components/Retool.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,23 @@ const Retool = ({ data, url, height, width, onData }) => {
2222

2323
/* On page load, add event listener to listen for events from Retool */
2424
useEffect(() => {
25+
// if the URL changes, we want to clear previous set of Element Watchers
26+
setElementWatchers({});
27+
2528
/* Handle events - if PWQ then create/replace watchers -> return result */
2629
const handler = (event) => {
2730
if (!embeddedIframe?.current?.contentWindow) return;
28-
31+
32+
/* Handle messages passed up from Retool */
2933
if (
3034
event.origin === new URL(url).origin &&
3135
event.data?.type !== "PARENT_WINDOW_QUERY" &&
32-
event.data?.type !== 'intercom-snippet__ready'
36+
event.data?.type !== "intercom-snippet__ready"
3337
) {
3438
onData?.(event.data);
3539
}
36-
40+
41+
/* Handle requests from Retool looking for data */
3742
if (event.data.type === "PARENT_WINDOW_QUERY") {
3843
createOrReplaceWatcher(
3944
event.data.selector,
@@ -47,7 +52,7 @@ const Retool = ({ data, url, height, width, onData }) => {
4752
window.addEventListener("message", handler);
4853

4954
return () => window.removeEventListener("message", handler);
50-
}, []);
55+
}, [url]);
5156

5257
/* Creates or updates the list of values for us to watch for changes */
5358
const createOrReplaceWatcher = (selector, pageName, queryId) => {

0 commit comments

Comments
 (0)