Skip to content

File tree

1 file changed

+22
-11
lines changed

1 file changed

+22
-11
lines changed

frontend/routes/package/(_components)/PackageHeader.tsx

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { CheckmarkStamp } from "../../../components/icons/CheckmarkStamp.tsx";
77
import { WarningTriangle } from "../../../components/icons/WarningTriangle.tsx";
88
import { Tooltip } from "../../../components/Tooltip.tsx";
99
import twas from "$twas";
10-
import { parse } from "$std/semver/mod.ts";
10+
import { gt, parse } from "$std/semver/mod.ts";
1111

1212
interface PackageHeaderProps {
1313
package: Package;
@@ -20,8 +20,14 @@ export function PackageHeader(
2020
const runtimeCompat = (
2121
<RuntimeCompatIndicator runtimeCompat={pkg.runtimeCompat} />
2222
);
23-
const isPrerelease = selectedVersion &&
24-
parse(selectedVersion.version).prerelease.length !== 0;
23+
const isYanked = selectedVersion && selectedVersion.yanked;
24+
25+
const selectedVersionSemver = selectedVersion &&
26+
parse(selectedVersion.version);
27+
const isNewerPrerelease = selectedVersionSemver &&
28+
selectedVersionSemver.prerelease.length !== 0 &&
29+
(pkg.latestVersion === null ||
30+
gt(selectedVersionSemver, parse(pkg.latestVersion)));
2531

2632
return (
2733
<div class="space-y-6 mt-0 md:mt-4">
@@ -31,19 +37,26 @@ export function PackageHeader(
3137
<div class="text-sm md:text-base flex items-center justify-center gap-4 md:gap-2">
3238
<WarningTriangle class="text-jsr-yellow-400 flex-none" />
3339
<span class="font-medium">
34-
This release is{" "}
35-
{isPrerelease && selectedVersion.newerVersionsCount == 0
40+
This release {selectedVersion.yanked
41+
? (
42+
<>
43+
was yanked — the latest version of @{pkg
44+
.scope}/{pkg.name} is {pkg.latestVersion}.
45+
</>
46+
)
47+
: isNewerPrerelease
3648
? (
3749
<>
38-
a pre-release — the latest stable version of @{pkg
50+
is a pre-release — the latest non-prerelease version of
51+
@{pkg
3952
.scope}/{pkg.name} is {pkg.latestVersion}.
4053
</>
4154
)
4255
: (
4356
<>
4457
<span class="bold">
45-
{selectedVersion.newerVersionsCount}{" "}
46-
version{selectedVersion.newerVersionsCount > 1 && "s"}
58+
is {selectedVersion.newerVersionsCount}{" "}
59+
version{selectedVersion.newerVersionsCount !== 1 && "s"}
4760
{" "}
4861
behind {pkg.latestVersion}
4962
</span>{" "}
@@ -54,9 +67,7 @@ export function PackageHeader(
5467
class="link font-medium whitespace-nowrap"
5568
href={`/@${pkg.scope}/${pkg.name}`}
5669
>
57-
Jump to latest{" "}
58-
{isPrerelease && selectedVersion.newerVersionsCount == 0 &&
59-
"stable"}
70+
Jump to {isNewerPrerelease ? "this version " : "latest"}
6071
</a>
6172
</span>
6273
</div>

0 commit comments

Comments
 (0)