Files
immich/web/src/lib/components/album-page/album-cover.svelte
T

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}