@@ -26,10 +26,11 @@ if (import.meta.server) {
2626}
2727
2828// status: resolvedStatus
29- const { data : version, pending : resolvingPending } = await useResolvedVersion (
30- packageName ,
31- requestedVersion ,
32- )
29+ const {
30+ data : version,
31+ pending : resolvingPending,
32+ error : resolvingError,
33+ } = await useResolvedVersion (packageName , requestedVersion )
3334
3435const { data : pkg } = usePackage (packageName , () => version .value ?? requestedVersion .value ?? null )
3536
@@ -80,7 +81,7 @@ defineOgImageComponent('Default', {
8081})
8182 </script >
8283<template >
83- <main class =" flex-1 flex flex-col" :style =" stickyStyle" >
84+ <main class =" flex-1 flex flex-col" :style =" stickyStyle" v-if = " !resolvingError " >
8485 <PackageHeader
8586 page =" changelog"
8687 :versionUrlPattern
@@ -108,7 +109,7 @@ defineOgImageComponent('Default', {
108109 <!-- prevents layout shift while loading -->
109110 </div >
110111 </div >
111- <section v-if =" pending || resolvingPending " class =" flex flex-col gap-2 py-3" >
112+ <section v-if =" !changelog && !changelogError " class =" flex flex-col gap-2 py-3" >
112113 <SkeletonBlock class =" h-8 w-40 rounded" />
113114 <ul class =" ms-3 list-disc my-4 ps-6 marker:color-[--border-hover]" >
114115 <li class =" mb-1" v-for =" _n in 5" >
@@ -120,13 +121,14 @@ defineOgImageComponent('Default', {
120121 <SkeletonBlock class =" h-5 w-3/4 max-w-2xl rounded" />
121122 </section >
122123
123- <Suspense v-else >
124+ <Suspense v-else-if = " changelog " >
124125 <template #default >
125126 <LazyChangelogReleases
126127 v-if =" changelog?.type === 'release'"
127128 :info =" changelog"
128129 :requested-date =" versionDate"
129130 :goToVersion =" requestedVersion && version"
131+ :resolveVersionPending =" resolvingPending"
130132 #error
131133 >
132134 <LazyChangelogErrorMsg
@@ -140,6 +142,7 @@ defineOgImageComponent('Default', {
140142 :info =" changelog"
141143 :tpTarget =" tptoc"
142144 :goToVersion =" requestedVersion && version"
145+ :resolveVersionPending =" resolvingPending"
143146 #error
144147 >
145148 <LazyChangelogErrorMsg
@@ -148,10 +151,7 @@ defineOgImageComponent('Default', {
148151 :viewOnGit
149152 />
150153 </LazyChangelogMarkdown >
151- <p class =" mt-5" v-else-if =" changelogError?.statusMessage == ERROR_UNGH_API_KEY_EXHAUSTED" >
152- {{ $t('changelog.rate_limit_ungh') }}
153- </p >
154- <p class =" mt-5" v-else >{{ $t('changelog.no_logs') }}</p >
154+
155155 <!-- <p class="mt-5" v-else-></p> -->
156156 </template >
157157 <template #fallback >
@@ -168,6 +168,28 @@ defineOgImageComponent('Default', {
168168 </section >
169169 </template >
170170 </Suspense >
171+ <!-- error handling -->
172+ <p class =" mt-5" v-else-if =" changelogError?.statusMessage == ERROR_UNGH_API_KEY_EXHAUSTED" >
173+ {{ $t('changelog.rate_limit_ungh') }}
174+ </p >
175+ <p class =" mt-5" v-else-if =" !version || !pkg?.versions[version]" >
176+ {{ $t('changelog.version_unavailable') }}
177+ </p >
178+ <p class =" mt-5" v-else >
179+ {{ $t('changelog.no_logs') }}
180+ </p >
171181 </section >
172182 </main >
183+ <!-- resolving the version didn't succeed, assunming that the package doesn't exist -->
184+ <main v-else role =" alert" class =" flex flex-col items-center py-20 text-center container w-full" >
185+ <h1 class =" font-mono text-2xl font-medium mb-4" >
186+ {{ $t('package.not_found') }}
187+ </h1 >
188+ <p class =" text-fg-muted mb-8" >
189+ {{ $t('package.not_found_message') }}
190+ </p >
191+ <LinkBase variant =" button-secondary" :to =" { name: 'index' }" >{{
192+ $t('common.go_back_home')
193+ }}</LinkBase >
194+ </main >
173195</template >
0 commit comments