update links page to include project name in each card

pull/3/head
TZGyn 2 years ago
parent 0f64c1579b
commit cd080bfbea
Signed by: TZGyn
GPG Key ID: 122EAF77AE81FD4A

@ -0,0 +1,18 @@
<script lang="ts">
import { cn } from "$lib/utils";
import { badgeVariants, type Variant } from ".";
let className: string | undefined | null = undefined;
export let href: string | undefined = undefined;
export let variant: Variant = "default";
export { className as class };
</script>
<svelte:element
this={href ? "a" : "span"}
{href}
class={cn(badgeVariants({ variant, className }))}
{...$$restProps}
>
<slot />
</svelte:element>

@ -0,0 +1,22 @@
import { tv, type VariantProps } from "tailwind-variants";
export { default as Badge } from "./badge.svelte";
export const badgeVariants = tv({
base: "inline-flex items-center border rounded-full px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none select-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
variants: {
variant: {
default:
"bg-primary hover:bg-primary/80 border-transparent text-primary-foreground",
secondary:
"bg-secondary hover:bg-secondary/80 border-transparent text-secondary-foreground",
destructive:
"bg-destructive hover:bg-destructive/80 border-transparent text-destructive-foreground",
outline: "text-foreground"
}
},
defaultVariants: {
variant: "default"
}
});
export type Variant = VariantProps<typeof badgeVariants>["variant"];

@ -35,9 +35,7 @@ export const load = (async (event) => {
where: (shortener, { eq, and, isNull }) => where: (shortener, { eq, and, isNull }) =>
and( and(
eq(shortener.userId, user.id), eq(shortener.userId, user.id),
project_id project_id ? eq(shortener.projectId, project_id) : undefined,
? eq(shortener.projectId, project_id)
: isNull(shortener.projectId),
), ),
}) })

@ -8,6 +8,7 @@
import * as Select from '$lib/components/ui/select' import * as Select from '$lib/components/ui/select'
import { Input } from '$lib/components/ui/input' import { Input } from '$lib/components/ui/input'
import { Label } from '$lib/components/ui/label' import { Label } from '$lib/components/ui/label'
import { Badge } from '$lib/components/ui/badge'
import { import {
BarChart, BarChart,
ExternalLink, ExternalLink,
@ -155,17 +156,23 @@
{#each data.shorteners as shortener} {#each data.shorteners as shortener}
<Card.Root class="w-full max-w-[500px]"> <Card.Root class="w-full max-w-[500px]">
<Card.Header> <Card.Header>
<Card.Title class="flex items-center gap-2"> <Card.Title class="flex items-center justify-between gap-2">
<a <div class="flex items-center gap-2">
href={'https://' + <a
data.shortener_url + href={'https://' +
'/' + data.shortener_url +
shortener.code} '/' +
target="_blank" shortener.code}
class="hover:underline"> target="_blank"
{data.shortener_url + '/' + shortener.code} class="hover:underline">
</a> {data.shortener_url + '/' + shortener.code}
<ExternalLink size={16} /> </a>
<ExternalLink size={16} />
</div>
<Badge variant="default"
>{shortener.project
? shortener.project.name
: 'Uncategorized'}</Badge>
</Card.Title> </Card.Title>
<Card.Description>{shortener.link}</Card.Description> <Card.Description>{shortener.link}</Card.Description>
</Card.Header> </Card.Header>

Loading…
Cancel
Save