diff --git a/app/components/Package/Versions.vue b/app/components/Package/Versions.vue index 2d621e9b74..1cc284335b 100644 --- a/app/components/Package/Versions.vue +++ b/app/components/Package/Versions.vue @@ -106,6 +106,14 @@ function versionRoute(version: string): RouteLocationRaw { return packageRoute(props.packageName, version) } +// Route to the full versions history page +const versionsPageRoute = computed((): RouteLocationRaw => { + const [org, name = ''] = props.packageName.startsWith('@') + ? props.packageName.split('/') + : ['', props.packageName] + return { name: 'package-versions', params: { org, name } } +}) + // Version to tags lookup (supports multiple tags per version) const versionToTags = computed(() => buildVersionToTagsMap(props.distTags)) @@ -532,15 +540,26 @@ function majorGroupContainsCurrent(group: (typeof otherMajorGroups.value)[0]): b id="versions" >
diff --git a/app/pages/package/[[org]]/[name].vue b/app/pages/package/[[org]]/[name].vue index a57774f110..59f4b26558 100644 --- a/app/pages/package/[[org]]/[name].vue +++ b/app/pages/package/[[org]]/[name].vue @@ -272,6 +272,7 @@ const { diff: sizeDiff } = useInstallSizeDiff(packageName, resolvedVersion, pkg, // → Preserve the server-rendered DOM, don't flash to skeleton. const nuxtApp = useNuxtApp() const route = useRoute() +const isVersionsRoute = computed(() => route.name === 'package-versions') const hasEmptyPayload = import.meta.client && nuxtApp.payload.serverRendered && @@ -736,7 +737,8 @@ const showSkeleton = shallowRef(false)