blob: c9d283ba859239258e4e4096f622adac25d151aa (
plain) (
tree)
|
|
<script lang="ts">
import type { ArchiveFragment } from '$gql/graphql';
import FooterPill from '$lib/pills/FooterPill.svelte';
import { filesize } from 'filesize';
import { type Snippet } from 'svelte';
import Card from './Card.svelte';
interface Props {
archive: ArchiveFragment;
overlay?: Snippet;
onclick?: (event: MouseEvent) => void;
}
let { archive, overlay, onclick }: Props = $props();
let details = $derived({
title: archive.name,
cover: archive.cover
});
let href = $derived(`/archives/${archive.id.toString()}`);
</script>
<Card {details} {href} {onclick} {overlay}>
{#snippet footer()}
<div class="flex flex-wrap gap-1">
<FooterPill text={`${archive.pageCount} pages`}>
{#snippet icon()}
<span class="icon-[material-symbols--description] mr-0.5 text-sm"></span>
{/snippet}
</FooterPill>
<div class="flex grow"></div>
<FooterPill text={filesize(archive.size, { base: 2 })}>
{#snippet icon()}
<span class="icon-[material-symbols--hard-drive] mr-0.5 text-sm"></span>
{/snippet}
</FooterPill>
</div>
{/snippet}
</Card>
|