Browse Source

refactor(nc-gui): move shared-view postMessage into onMounted

pull/3810/head
Denis 2 years ago
parent
commit
ac0276f002
  1. 36
      packages/nc-gui/layouts/shared-view.vue

36
packages/nc-gui/layouts/shared-view.vue

@ -1,26 +1,28 @@
<script lang="ts" setup>
import { useRouter } from 'vue-router'
import { navigateTo } from '#app'
import { navigateTo, useEventListener, useRouter } from '#imports'
const { isLoading, currentVersion } = useGlobal()
const { sharedView } = useSharedView()
const router = useRouter()
if (window.parent !== window) {
const notifyLocationChange = (value: string) =>
window.parent.postMessage(
{
event: 'locationchange',
payload: { value },
},
'*',
)
onMounted(() => {
// check if we are inside an iframe
if (window.parent !== window) {
const notifyLocationChange = (value: string) =>
window.parent.postMessage(
{
event: 'locationchange',
payload: { value },
},
'*',
)
router.afterEach((to) => notifyLocationChange(location.origin + to.fullPath))
window.addEventListener('beforeunload', () => {
const { href } = document.activeElement as { href?: string }
if (href) notifyLocationChange(href)
})
}
router.afterEach((to) => notifyLocationChange(location.origin + to.fullPath))
useEventListener(window, 'beforeunload', () => {
const { href } = document.activeElement as { href?: string }
if (href) notifyLocationChange(href)
})
}
})
</script>
<script lang="ts">

Loading…
Cancel
Save