Skip to content

Commit b34a9fd

Browse files
feat(main-page): add a disclaimer banner for prettier-plugin-svelte
Extract banner logic in the meantime
1 parent 543eb9c commit b34a9fd

File tree

2 files changed

+48
-19
lines changed

2 files changed

+48
-19
lines changed

src/routes/package/[...package]/+page.svelte

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,15 @@
77
import semver from "semver";
88
import { ALL_SLUG } from "$lib/types";
99
import * as Accordion from "$lib/components/ui/accordion";
10-
import * as Alert from "$lib/components/ui/alert";
1110
import { Button } from "$lib/components/ui/button";
1211
import * as Collapsible from "$lib/components/ui/collapsible";
1312
import { Separator } from "$lib/components/ui/separator";
1413
import { Skeleton } from "$lib/components/ui/skeleton";
1514
import AnimatedButton from "$lib/components/AnimatedButton.svelte";
1615
import AnimatedCollapsibleContent from "$lib/components/AnimatedCollapsibleContent.svelte";
17-
import MarkdownRenderer from "$lib/components/MarkdownRenderer.svelte";
1816
import { getPackageSettings } from "../settings.svelte";
1917
import type { Snapshot } from "./$types";
18+
import HeaderBanner from "./HeaderBanner.svelte";
2019
import ReleaseCard from "./ReleaseCard.svelte";
2120
2221
const loadingSentences = [
@@ -224,23 +223,22 @@
224223
</div>
225224
<Accordion.Root type="multiple" bind:value={expandableReleases} class="w-full space-y-2">
226225
{#if data.currentPackage.pkg.deprecated}
227-
<Alert.Root class="rounded-md border-amber-500 bg-amber-400/10">
228-
<CircleAlert class="size-4" />
229-
<Alert.Title>Deprecated</Alert.Title>
230-
<Alert.Description>
231-
<MarkdownRenderer
232-
markdown={data.currentPackage.pkg.deprecated}
233-
inline
234-
class="max-w-full text-sm text-muted-foreground"
235-
>
236-
{#snippet a({ children, ...rest })}
237-
<a {...rest} target="_blank">
238-
{@render children?.()}
239-
</a>
240-
{/snippet}
241-
</MarkdownRenderer>
242-
</Alert.Description>
243-
</Alert.Root>
226+
<HeaderBanner
227+
icon={CircleAlert}
228+
title="Deprecated"
229+
markdown={data.currentPackage.pkg.deprecated}
230+
class="rounded-md border-amber-500 bg-amber-400/10"
231+
/>
232+
{/if}
233+
{#if data.currentPackage.pkg.name === "prettier-plugin-svelte"}
234+
{@const markdown =
235+
"This package has trouble tagging its releases, and some updates can be missing here. Visit [this issue](https://github.com/sveltejs/prettier-plugin-svelte/issues/497) for more information."}
236+
<HeaderBanner
237+
icon={CircleAlert}
238+
title="Note"
239+
{markdown}
240+
class="rounded-md border-sky-500 bg-sky-400/20"
241+
/>
244242
{/if}
245243
{#each displayableReleases as release, index (release.id)}
246244
{@const semVersion = semver.coerce(release.cleanVersion)}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<script lang="ts">
2+
import type { ClassValue } from "svelte/elements";
3+
import type { Icon } from "@lucide/svelte";
4+
import * as Alert from "$lib/components/ui/alert";
5+
import MarkdownRenderer from "$lib/components/MarkdownRenderer.svelte";
6+
7+
type Props = {
8+
icon?: typeof Icon;
9+
title: string;
10+
markdown: string;
11+
class?: ClassValue;
12+
};
13+
14+
let { icon: BannerIcon, title, markdown, class: className }: Props = $props();
15+
</script>
16+
17+
<Alert.Root class={className}>
18+
{#if BannerIcon}
19+
<BannerIcon class="size-4" />
20+
{/if}
21+
<Alert.Title>{title}</Alert.Title>
22+
<Alert.Description>
23+
<MarkdownRenderer {markdown} inline class="max-w-full text-sm text-muted-foreground">
24+
{#snippet a({ children, ...rest })}
25+
<a {...rest} target="_blank">
26+
{@render children?.()}
27+
</a>
28+
{/snippet}
29+
</MarkdownRenderer>
30+
</Alert.Description>
31+
</Alert.Root>

0 commit comments

Comments
 (0)