feat(ui): use sticky position on settings mid panel (#2004)

zio/stable
Joaquín Sánchez 2023-04-23 14:21:54 +02:00 committed by GitHub
parent 56405f52bb
commit 54e2afa56b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 1 deletions

View File

@ -8,12 +8,23 @@ defineProps<{
noOverflowHidden?: boolean
}>()
const container = ref()
const route = useRoute()
const { height: windowHeight } = useWindowSize()
const { height: containerHeight } = useElementBounding(container)
const wideLayout = computed(() => route.meta.wideLayout ?? false)
const sticky = computed(() => route.path?.startsWith('/settings/'))
const containerClass = computed(() => {
// we keep original behavior when not in settings page and when the window height is smaller than the container height
if (!isHydrated.value || !sticky.value || (windowHeight.value < containerHeight.value))
return null
return 'lg:sticky lg:top-0'
})
</script>
<template>
<div>
<div ref="container" :class="containerClass">
<div
sticky top-0 z10 backdrop-blur
pt="[env(safe-area-inset-top,0)]"