Merge pull request #8016 from Budibase/feature/redirect-after-modal-close

Allow screen redirect after modal close
This commit is contained in:
Martin McKeaveney 2022-10-21 08:58:21 +01:00 committed by GitHub
commit a6c5079190
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 7 deletions

View File

@ -1,16 +1,31 @@
<script>
import { Body } from "@budibase/bbui"
import { Label, Body } from "@budibase/bbui"
import DrawerBindableInput from "components/common/bindings/DrawerBindableInput.svelte"
export let parameters
export let bindings = []
</script>
<Body size="S">Navigate To screen, or leave blank.</Body>
<br />
<div class="root">
<Body size="S">This action doesn't require any additional settings.</Body>
<Body size="S">
This action won't do anything if there isn't a screen modal open.
</Body>
<Label small>Screen</Label>
<DrawerBindableInput
title="Destination URL"
placeholder="/screen"
value={parameters.url}
on:change={value => (parameters.url = value.detail)}
{bindings}
/>
</div>
<style>
.root {
display: grid;
align-items: center;
gap: var(--spacing-m);
grid-template-columns: auto 1fr;
max-width: 400px;
margin: 0 auto;
}
</style>

View File

@ -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)

View File

@ -224,10 +224,11 @@ const changeFormStepHandler = async (action, context) => {
)
}
const closeScreenModalHandler = () => {
const closeScreenModalHandler = action => {
let { url } = action.parameters
// 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 => {