diff --git a/app/pages/package/[[org]]/[name].vue b/app/pages/package/[[org]]/[name].vue index 93296f429..ab0d58757 100644 --- a/app/pages/package/[[org]]/[name].vue +++ b/app/pages/package/[[org]]/[name].vue @@ -33,18 +33,27 @@ const router = useRouter() const header = useTemplateRef('header') const isHeaderPinned = shallowRef(false) +const readmeHeader = useTemplateRef('readmeHeader') +const isReadmeHeaderPinned = shallowRef(false) const navExtraOffset = shallowRef(0) const isMobile = useMediaQuery('(max-width: 639.9px)') -function checkHeaderPosition() { - const el = header.value - if (!el) return +const headerBounds = useElementBounding(header) +const readmeStickyTop = computed(() => `${56 + headerBounds.height.value}px`) + +function isStickyPinned(el: HTMLElement | null): boolean { + if (!el) return false const style = getComputedStyle(el) const top = parseFloat(style.top) || 0 const rect = el.getBoundingClientRect() - isHeaderPinned.value = Math.abs(rect.top - top) < 1 + return Math.abs(rect.top - top) < 1 +} + +function checkHeaderPosition() { + isHeaderPinned.value = isStickyPinned(header.value) + isReadmeHeaderPinned.value = isStickyPinned(readmeHeader.value) } useEventListener('scroll', checkHeaderPosition, { passive: true }) @@ -1392,7 +1401,12 @@ const showSkeleton = shallowRef(false)
-
+

{{ $t('package.readme.title') }} diff --git a/app/pages/package/[[org]]/[name]/index.vue b/app/pages/package/[[org]]/[name]/index.vue index ba122fbfc..632e87a47 100644 --- a/app/pages/package/[[org]]/[name]/index.vue +++ b/app/pages/package/[[org]]/[name]/index.vue @@ -2,7 +2,7 @@ // stub page to help with paths definePageMeta({ name: 'package', - scrollMargin: 150, + scrollMargin: 200, })