1
0
Fork 0
mirror of synced 2024-10-02 10:08:09 +13:00

Handle navigation on close modal

This commit is contained in:
Mel O'Hagan 2022-09-28 13:50:23 +01:00
parent 29fe7ef1d8
commit df5d609298

View file

@ -224,7 +224,27 @@ const changeFormStepHandler = async (action, context) => {
)
}
const closeScreenModalHandler = () => {
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" })