diff --git a/components/main/MainContent.vue b/components/main/MainContent.vue index 3034e273..ded5d648 100644 --- a/components/main/MainContent.vue +++ b/components/main/MainContent.vue @@ -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' +})