Skip to content

Commit a8ce110

Browse files
feat(details): improve release tag look on PRs
1 parent 49a4796 commit a8ce110

File tree

2 files changed

+22
-15
lines changed

2 files changed

+22
-15
lines changed

src/routes/[pid=pid]/[org]/[repo]/[id=number]/+page.server.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { error, redirect } from "@sveltejs/kit";
2+
import { publicRepos } from "$lib/repositories";
23
import { githubCache } from "$lib/server/github-cache";
34
import type { BranchCommit } from "$lib/types";
45

@@ -16,6 +17,8 @@ export async function load({ params, fetch }) {
1617
redirect(307, `/${realType}/${org}/${repo}/${id}`);
1718
}
1819

20+
const matchingRepo = publicRepos.find(r => r.repoOwner === org && r.repoName === repo);
21+
1922
return {
2023
itemMetadata: {
2124
org,
@@ -29,7 +32,7 @@ export async function load({ params, fetch }) {
2932
: ("pull" as const)
3033
},
3134
item,
32-
mergedTagName: new Promise<string | undefined>((resolve, reject) => {
35+
mergedTagName: new Promise<[string, string] | undefined>((resolve, reject) => {
3336
// Credit to Refined GitHub: https://github.com/refined-github/refined-github/blob/main/source/features/closing-remarks.tsx
3437
// Get the merged PR's sha, otherwise it is not a proper target for this
3538
if (!("merged" in item.info)) {
@@ -48,10 +51,15 @@ export async function load({ params, fetch }) {
4851
}
4952
})
5053
.then(res => res.json() as Promise<BranchCommit>)
51-
.then(({ tags }) =>
54+
.then(({ tags }) => {
5255
// The info is right here after a little filtering :D
53-
resolve(tags.findLast(tag => !tag.includes("nightly") && /\d[.]\d/.test(tag)))
54-
)
56+
const earliestTag = tags.findLast(tag => !tag.includes("nightly") && /\d[.]\d/.test(tag));
57+
if (!earliestTag) {
58+
resolve(undefined);
59+
return;
60+
}
61+
resolve(matchingRepo?.metadataFromTag(earliestTag));
62+
})
5563
.catch(reject);
5664
})
5765
};

src/routes/[pid=pid]/[org]/[repo]/[id=number]/PageRenderer.svelte

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
ChevronLeft,
2727
FileDiff,
2828
GitCommitVertical,
29-
Info,
3029
Lock,
31-
MessagesSquare
30+
MessagesSquare,
31+
Tag
3232
} from "@lucide/svelte";
3333
import rehypeShikiFromHighlighter from "@shikijs/rehype/core";
3434
import { transformerNotationDiff } from "@shikijs/transformers";
@@ -131,7 +131,7 @@
131131
commits: PullRequestDetails["commits"];
132132
files: PullRequestDetails["files"];
133133
linkedEntities: LinkedItem[];
134-
mergedTagName: Promise<string | undefined>;
134+
mergedTagName: Promise<[string, string] | undefined>;
135135
};
136136
137137
let { metadata, info, comments, commits, files, linkedEntities, mergedTagName }: Props = $props();
@@ -423,22 +423,21 @@
423423
</div>
424424
{/each}
425425
</div>
426-
{#await mergedTagName then tagName}
427-
{#if tagName}
426+
{#await mergedTagName then mergedTag}
427+
{#if mergedTag}
428+
{@const [tagName, tagVersion] = mergedTag}
428429
<Alert.Root class="rounded-md border-green-500 bg-green-400/10">
429-
<Info class="size-4" />
430+
<Tag class="size-4" />
430431
<Alert.Description class="inline text-foreground">
431-
This pull request was merged in
432+
This pull request was released in
432433
<Button
433434
variant="link"
434435
href="https://github.com/{metadata.org}/{metadata.repo}/releases/tag/{tagName}"
435436
target="_blank"
436-
class="group h-auto gap-0.5 p-0 text-green-500 has-[>svg]:px-0"
437+
class="h-auto p-0 text-green-500"
437438
>
438439
{tagName}
439-
<ArrowUpRight
440-
class="-translate-x-2 opacity-0 transition group-hover:translate-x-0 group-hover:opacity-100"
441-
/>
440+
{tagVersion}
442441
</Button>
443442
</Alert.Description>
444443
</Alert.Root>

0 commit comments

Comments
 (0)