27 lines
864 B
Svelte
27 lines
864 B
Svelte
<script lang="ts">
|
|
import { getAssetThumbnailUrl } from '$lib/utils';
|
|
import { type AlbumResponseDto } from '@immich/sdk';
|
|
import NoCover from '$lib/components/sharedlinks-page/covers/no-cover.svelte';
|
|
import AssetCover from '$lib/components/sharedlinks-page/covers/asset-cover.svelte';
|
|
import { t } from 'svelte-i18n';
|
|
|
|
interface Props {
|
|
album: AlbumResponseDto;
|
|
preload?: boolean;
|
|
class?: string;
|
|
}
|
|
|
|
let { album, preload = false, class: className = '' }: Props = $props();
|
|
|
|
let alt = $derived(album.albumName || $t('unnamed_album'));
|
|
let thumbnailUrl = $derived(
|
|
album.albumThumbnailAssetId ? getAssetThumbnailUrl({ id: album.albumThumbnailAssetId }) : null,
|
|
);
|
|
</script>
|
|
|
|
{#if thumbnailUrl}
|
|
<AssetCover {alt} class={className} src={thumbnailUrl} {preload} />
|
|
{:else}
|
|
<NoCover {alt} class={className} {preload} />
|
|
{/if}
|