refactor: view shared link (#23766)

This commit is contained in:
Jason Rasmussen
2025-11-10 12:21:26 -05:00
committed by GitHub
parent a4e65a7ea8
commit 45304f1211
13 changed files with 74 additions and 76 deletions
@@ -10,7 +10,7 @@ vi.mock('$lib/utils');
describe('ShareCover component', () => {
it('renders an image when the shared link is an album', () => {
const component = render(ShareCover, {
link: sharedLinkFactory.build({ album: albumFactory.build({ albumName: '123' }) }),
sharedLink: sharedLinkFactory.build({ album: albumFactory.build({ albumName: '123' }) }),
preload: false,
class: 'text',
});
@@ -23,7 +23,7 @@ describe('ShareCover component', () => {
it('renders an image when the shared link is an individual share', () => {
vi.mocked(getAssetThumbnailUrl).mockReturnValue('/asdf');
const component = render(ShareCover, {
link: sharedLinkFactory.build({ assets: [assetFactory.build({ id: 'someId' })] }),
sharedLink: sharedLinkFactory.build({ assets: [assetFactory.build({ id: 'someId' })] }),
preload: false,
class: 'text',
});
@@ -37,7 +37,7 @@ describe('ShareCover component', () => {
it('renders an image when the shared link has no album or assets', () => {
const component = render(ShareCover, {
link: sharedLinkFactory.build(),
sharedLink: sharedLinkFactory.build(),
preload: false,
class: 'text',
});
@@ -48,9 +48,9 @@ describe('ShareCover component', () => {
});
it.skip('renders fallback image when asset is not resized', () => {
const link = sharedLinkFactory.build({ assets: [assetFactory.build()] });
const sharedLink = sharedLinkFactory.build({ assets: [assetFactory.build()] });
render(ShareCover, {
link,
sharedLink,
preload: false,
});
@@ -1,29 +1,29 @@
<script lang="ts">
import type { SharedLinkResponseDto } from '@immich/sdk';
import AlbumCover from '$lib/components/album-page/album-cover.svelte';
import NoCover from '$lib/components/sharedlinks-page/covers/no-cover.svelte';
import AssetCover from '$lib/components/sharedlinks-page/covers/asset-cover.svelte';
import NoCover from '$lib/components/sharedlinks-page/covers/no-cover.svelte';
import { getAssetThumbnailUrl } from '$lib/utils';
import type { SharedLinkResponseDto } from '@immich/sdk';
import { t } from 'svelte-i18n';
interface Props {
link: SharedLinkResponseDto;
sharedLink: SharedLinkResponseDto;
preload?: boolean;
class?: string;
}
let { link, preload = false, class: className = '' }: Props = $props();
let { sharedLink, preload = false, class: className = '' }: Props = $props();
</script>
<div class="relative shrink-0 size-24">
{#if link?.album}
<AlbumCover album={link.album} class={className} {preload} />
{:else if link.assets[0]}
{#if sharedLink?.album}
<AlbumCover album={sharedLink.album} class={className} {preload} />
{:else if sharedLink.assets[0]}
<AssetCover
alt={$t('individual_share')}
class={className}
{preload}
src={getAssetThumbnailUrl(link.assets[0].id)}
src={getAssetThumbnailUrl(sharedLink.assets[0].id)}
/>
{:else}
<NoCover alt={$t('unnamed_share')} class={className} {preload} />