Skip to content

Commit 6a67bb6

Browse files
codewithvkjuliusknorr
authored andcommitted
fix(CoolFrame): Init and accept postMessage for setting iframe height
Signed-off-by: codewithvk <vivek.javiya@collabora.com>
1 parent d6dd5de commit 6a67bb6

1 file changed

Lines changed: 27 additions & 2 deletions

File tree

src/components/CoolFrame.vue

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
2929
import { generateCSSVarTokens, getUITheme } from '../helpers/coolParameters.js'
3030
import { languageToBCP47 } from '../helpers/index.js'
31+
import PostMessageService from '../services/postMessage.tsx'
3132
3233
export default {
3334
name: 'CoolFrame',
@@ -60,9 +61,15 @@ export default {
6061
cssVariables: generateCSSVarTokens(),
6162
isIframeLoaded: false,
6263
uiTheme: getUITheme(),
64+
postMessage: null,
6365
}
6466
},
6567
mounted() {
68+
this.postMessage = new PostMessageService({
69+
parent: window.parent,
70+
})
71+
window.addEventListener('message', this.handlePostMessage)
72+
6673
if (this.iframeUrl.length > 0) {
6774
this.formAction = this.iframeUrl + '?lang=' + languageToBCP47()
6875
this.isIframeLoaded = true
@@ -79,14 +86,32 @@ export default {
7986
}
8087
})
8188
},
89+
beforeDestroy() {
90+
window.removeEventListener('message', this.handlePostMessage)
91+
},
92+
methods: {
93+
handlePostMessage(event) {
94+
try {
95+
const data = event.data
96+
if (data.MessageId === 'Iframe_Height') {
97+
document.getElementById(this.iframeName).height = data.Values.ContentHeight
98+
}
99+
} catch (e) {
100+
console.error('Something went wrong with post message', e)
101+
}
102+
},
103+
},
104+
82105
}
83106
</script>
84107

85108
<style scoped>
86109
.cool-frame-iframe {
87110
width: 100%;
88111
border: none;
89-
height: 2000px;
90-
overflow-y: auto;
112+
overflow-y: hidden;
113+
box-sizing: border-box;
114+
padding: 0;
115+
margin: 0;
91116
}
92117
</style>

0 commit comments

Comments
 (0)