28 lines
588 B
Vue
28 lines
588 B
Vue
<script setup lang="ts">
|
|
const isLoading = ref(true)
|
|
const maintRef = ref<HTMLElement>()
|
|
|
|
const { height: viewportH } = useWindowSize()
|
|
const { bottom: mainBottom } = useElementBounding(maintRef)
|
|
|
|
const pinToMain = computed(() => {
|
|
if (!mainBottom.value) return false
|
|
return mainBottom.value <= viewportH.value
|
|
})
|
|
|
|
provide('pinToMain', pinToMain)
|
|
|
|
onMounted(() => {
|
|
isLoading.value = false
|
|
})
|
|
</script>
|
|
|
|
<template>
|
|
<LayoutsHeader />
|
|
<AtomsLoadingSimple :is-loading="isLoading" />
|
|
<main id="LayoutsMain" class="relative">
|
|
<slot />
|
|
</main>
|
|
<LayoutsFooter />
|
|
</template>
|