mirror of
https://github.com/immich-app/immich
synced 2025-11-07 17:27:20 +00:00
parent
f69ce6ad8a
commit
7fbf50a75e
18 changed files with 78 additions and 136 deletions
|
|
@ -47,13 +47,15 @@ describe('ShareCover component', () => {
|
|||
expect(img.className).toBe('z-0 rounded-xl object-cover aspect-square text');
|
||||
});
|
||||
|
||||
it('renders fallback image when asset is not resized', () => {
|
||||
const link = sharedLinkFactory.build({ assets: [assetFactory.build({ resized: false })] });
|
||||
it.skip('renders fallback image when asset is not resized', () => {
|
||||
const link = sharedLinkFactory.build({ assets: [assetFactory.build()] });
|
||||
render(ShareCover, {
|
||||
link: link,
|
||||
preload: false,
|
||||
});
|
||||
|
||||
// TODO emit image error event and check if fallback image is rendered
|
||||
|
||||
const img = screen.getByTestId<HTMLImageElement>('album-image');
|
||||
expect(img.alt).toBe('unnamed_share');
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,16 +1,25 @@
|
|||
<script lang="ts">
|
||||
import BrokenAsset from '$lib/components/assets/broken-asset.svelte';
|
||||
|
||||
export let alt;
|
||||
export let preload = false;
|
||||
export let src: string;
|
||||
let className = '';
|
||||
export { className as class };
|
||||
|
||||
let isBroken = false;
|
||||
</script>
|
||||
|
||||
<img
|
||||
{alt}
|
||||
class="z-0 rounded-xl object-cover aspect-square {className}"
|
||||
data-testid="album-image"
|
||||
draggable="false"
|
||||
loading={preload ? 'eager' : 'lazy'}
|
||||
{src}
|
||||
/>
|
||||
{#if isBroken}
|
||||
<BrokenAsset noMessage />
|
||||
{:else}
|
||||
<img
|
||||
{alt}
|
||||
on:error={() => (isBroken = true)}
|
||||
class="z-0 rounded-xl object-cover aspect-square {className}"
|
||||
data-testid="album-image"
|
||||
draggable="false"
|
||||
loading={preload ? 'eager' : 'lazy'}
|
||||
{src}
|
||||
/>
|
||||
{/if}
|
||||
|
|
|
|||
|
|
@ -12,10 +12,10 @@
|
|||
export { className as class };
|
||||
</script>
|
||||
|
||||
<div class="relative shrink-0">
|
||||
<div class="relative shrink-0 size-24">
|
||||
{#if link?.album}
|
||||
<AlbumCover album={link.album} class={className} {preload} />
|
||||
{:else if link.assets[0]?.resized}
|
||||
{:else if link.assets[0]}
|
||||
<AssetCover
|
||||
alt={$t('individual_share')}
|
||||
class={className}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
href={isExpired ? undefined : `${AppRoute.SHARE}/${link.key}`}
|
||||
class="flex gap-4 w-full py-4"
|
||||
>
|
||||
<ShareCover class="size-24 transition-all duration-300 hover:shadow-lg" {link} />
|
||||
<ShareCover class="transition-all duration-300 hover:shadow-lg" {link} />
|
||||
|
||||
<div class="flex flex-col justify-between">
|
||||
<div class="info-top">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue