Skip to content

Commit d15e2e9

Browse files
committed
resolving version now happens in the background when switching versions, hopefully it resolves some issues
1 parent 07eadba commit d15e2e9

File tree

5 files changed

+48
-14
lines changed

5 files changed

+48
-14
lines changed

app/components/Changelog/Markdown.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
<script setup lang="ts">
2-
const { info, goToVersion, tpTarget } = defineProps<{
2+
const { info, goToVersion, tpTarget, resolveVersionPending } = defineProps<{
33
info: ChangelogMarkdownInfo
44
goToVersion: string | null | undefined
55
tpTarget?: HTMLElement | null
6+
resolveVersionPending?: boolean
67
}>()
78
89
const route = useRoute()
@@ -17,6 +18,9 @@ if (import.meta.client) {
1718
// doing this server side can make it that we go to the homepage
1819
const stopWatching = watchEffect(
1920
() => {
21+
if (resolveVersionPending) {
22+
return // need to wait till resolving is finished
23+
}
2024
const toc = data.value?.toc
2125
2226
if (toc && route.hash) {

app/components/Changelog/Releases.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
<script setup lang="ts">
22
import { slugify } from '~~/shared/utils/html'
33
4-
const { info, requestedDate, goToVersion } = defineProps<{
4+
const { info, requestedDate, goToVersion, resolveVersionPending } = defineProps<{
55
info: ChangelogReleaseInfo
66
requestedDate?: string
77
goToVersion?: string | null | undefined
8+
resolveVersionPending?: boolean
89
}>()
910
1011
const { data: releases, error } = await useLazyFetch<ReleaseData[]>(
@@ -32,6 +33,9 @@ if (import.meta.client) {
3233
// doing this server side can make it that we go to the homepage
3334
const stopWatching = watchEffect(
3435
() => {
36+
if (resolveVersionPending) {
37+
return // need to wait till resolving is finished
38+
}
3539
const uReleases = releases.value
3640
if (route.hash && uReleases) {
3741
// scroll if there is a hash in the url

app/pages/package-changelog/[[org]]/[name].vue

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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
3435
const { 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>

i18n/locales/en.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1533,6 +1533,7 @@
15331533
"p1": "Sorry, the changelog for {package} couldn't be loaded",
15341534
"p2": "Please try again later or {viewon}"
15351535
},
1536-
"rate_limit_ungh": "Sorry, Github's rate limit has been hit, try again in a moment"
1536+
"rate_limit_ungh": "Sorry, Github's rate limit has been hit, try again in a moment",
1537+
"version_unavailable": "The requested version is not available."
15371538
}
15381539
}

i18n/schema.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4605,6 +4605,9 @@
46054605
},
46064606
"rate_limit_ungh": {
46074607
"type": "string"
4608+
},
4609+
"version_unavailable": {
4610+
"type": "string"
46084611
}
46094612
},
46104613
"additionalProperties": false

0 commit comments

Comments
 (0)