diff --git a/app/pages/[...package].vue b/app/pages/[...package].vue index c5bbe36522..d86fc5f73f 100644 --- a/app/pages/[...package].vue +++ b/app/pages/[...package].vue @@ -19,6 +19,27 @@ definePageMeta({ const router = useRouter() +const header = useTemplateRef('header') +const isHeaderPinned = shallowRef(false) + +function checkHeaderPosition() { + const el = header.value + if (!el) return + + const style = getComputedStyle(el) + const top = parseFloat(style.top) || 0 + const rect = el.getBoundingClientRect() + + isHeaderPinned.value = Math.abs(rect.top - top) < 1 +} + +useEventListener('scroll', checkHeaderPosition, { passive: true }) +useEventListener('resize', checkHeaderPosition) + +onMounted(() => { + checkHeaderPosition() +}) + const { packageName, requestedVersion, orgName } = usePackageRoute() const selectedPM = useSelectedPackageManager() const activePmId = computed(() => selectedPM.value ?? 'npm') @@ -389,153 +410,157 @@ function handleClick(event: MouseEvent) {