Browse Source

Fix iframe preview loading bug in old client library versions

master
Andrew Kingston 5 years ago
parent
commit
ef88c740b2
  1. 14
      packages/builder/src/components/design/AppPreview/CurrentItemPreview.svelte
  2. 1
      packages/builder/src/components/design/AppPreview/iframeTemplate.js

14
packages/builder/src/components/design/AppPreview/CurrentItemPreview.svelte

@ -73,7 +73,17 @@
// Initialise the app when mounted // Initialise the app when mounted
iframe.contentWindow.addEventListener( iframe.contentWindow.addEventListener(
"ready", "ready",
() => refreshContent(strippedJson), () => {
loading = false
refreshContent(strippedJson)
},
{ once: true }
)
// Use iframe loading event to support old client versions
iframe.contentWindow.addEventListener(
"iframe-loaded",
() => (loading = false),
{ once: true } { once: true }
) )
@ -98,7 +108,7 @@
idToDelete = data.id idToDelete = data.id
confirmDeleteDialog.show() confirmDeleteDialog.show()
} else if (type === "preview-loaded") { } else if (type === "preview-loaded") {
loading = false // loading = false
} else { } else {
console.warning(`Client sent unknown event type: ${type}`) console.warning(`Client sent unknown event type: ${type}`)
} }

1
packages/builder/src/components/design/AppPreview/iframeTemplate.js

@ -64,6 +64,7 @@ export default `
if (window.loadBudibase) { if (window.loadBudibase) {
window.loadBudibase() window.loadBudibase()
document.documentElement.classList.add("loaded") document.documentElement.classList.add("loaded")
window.dispatchEvent(new Event("iframe-loaded"))
} else { } else {
throw "The client library couldn't be loaded" throw "The client library couldn't be loaded"
} }

Loading…
Cancel
Save