diff --git a/packages/client/src/components/overlay/PeekScreenDisplay.svelte b/packages/client/src/components/overlay/PeekScreenDisplay.svelte index d6da9ca3f0..b9f4914624 100644 --- a/packages/client/src/components/overlay/PeekScreenDisplay.svelte +++ b/packages/client/src/components/overlay/PeekScreenDisplay.svelte @@ -45,6 +45,9 @@ }, [MessageTypes.CLOSE_SCREEN_MODAL]: () => { peekStore.actions.hidePeek() + if (message.data?.url) { + routeStore.actions.navigate(message.data.url) + } }, [MessageTypes.INVALIDATE_DATASOURCE]: () => { proxyInvalidation(message.data) diff --git a/packages/client/src/utils/buttonActions.js b/packages/client/src/utils/buttonActions.js index 74c4504ca6..e44ed2451c 100644 --- a/packages/client/src/utils/buttonActions.js +++ b/packages/client/src/utils/buttonActions.js @@ -226,28 +226,9 @@ const changeFormStepHandler = async (action, context) => { const closeScreenModalHandler = action => { let { url } = action.parameters - if (url) { - window.parent.addEventListener("message", event => { - const location = event.target.location - //remove any trailing slash - if (url.charAt(url.length - 1) === "/") { - url = url.substring(0, url.length - 1) - } - //need to reload if hash route has not changed - let shouldReload = - `#${url.substring(0, url.lastIndexOf("/"))}` === - location.hash?.substring(0, location.hash.lastIndexOf("/")) - - window.parent.location.href = `${location.origin}${location.pathname}#${url}` - if (shouldReload) { - window.parent.location.reload() - } - }) - } - // Emit this as a window event, so parent screens which are iframing us in // can close the modal - window.parent.postMessage({ type: "close-screen-modal" }) + window.parent.postMessage({ type: "close-screen-modal", url }) } const updateStateHandler = action => {