1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-27 10:58:13 +02:00

fix(web): broken album thumbnail (#12381)

* fix(web): broken album thumbnail

* use properties from thumbnail
This commit is contained in:
Michel Heusschen 2024-09-06 15:16:18 +02:00 committed by GitHub
parent 9fc30d6bf6
commit 639bc0c660
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 29 additions and 29 deletions

View File

@ -152,7 +152,7 @@
]}
/>
{#if imageError}
<BrokenAsset square />
<BrokenAsset class="text-xl" />
{/if}
<!-- svelte-ignore a11y-missing-attribute -->
<img bind:this={loader} style="display:none" src={imageLoaderUrl} aria-hidden="true" />

View File

@ -3,23 +3,20 @@
import { mdiImageBrokenVariant } from '@mdi/js';
import { t } from 'svelte-i18n';
export let square = false;
export let noMessage = false;
let className = '';
export { className as class };
export let hideMessage = false;
export let width: string | undefined = undefined;
export let height: string | undefined = undefined;
</script>
<section class="flex h-full w-full justify-center">
<div
class="px-auto flex flex-col {square
? 'aspect-square'
: 'w-full'} h-full items-center justify-center bg-gray-100 dark:text-gray-100 dark:bg-immich-dark-gray"
>
<slot name="message">
{#if !noMessage}
<div class="text-lg absolute top-2/3">{$t('error_loading_image')}</div>
{/if}
</slot>
<div class="flex h-full w-full items-center justify-center p-4 bg-gray-100 dark:text-slate-200 dark:bg-gray-700">
<Icon path={mdiImageBrokenVariant} size="33%" />
</div>
</div>
</section>
<div
class="flex flex-col overflow-hidden max-h-full max-w-full justify-center items-center bg-gray-100 dark:bg-gray-700 dark:text-gray-100 p-4 {className}"
style:width
style:height
>
<Icon path={mdiImageBrokenVariant} size="7em" class="max-w-full" />
{#if !hideMessage}
<span class="text-center">{$t('error_loading_image')}</span>
{/if}
</div>

View File

@ -5,7 +5,6 @@
import { TUNABLES } from '$lib/utils/tunables';
import { mdiEyeOffOutline } from '@mdi/js';
import { onMount } from 'svelte';
import { t } from 'svelte-i18n';
import { fade } from 'svelte/transition';
export let url: string;
@ -45,12 +44,20 @@
setLoaded();
}
});
$: optionalClasses = [
curve && 'rounded-xl',
circle && 'rounded-full',
shadow && 'shadow-lg',
(circle || !heightStyle) && 'aspect-square',
border && 'border-[3px] border-immich-dark-primary/80 hover:border-immich-primary',
]
.filter(Boolean)
.join(' ');
</script>
{#if errored}
<BrokenAsset>
<div slot="message" class="absolute top-2/3">{$t('error_loading_image')}</div>
</BrokenAsset>
<BrokenAsset class={optionalClasses} width={widthStyle} height={heightStyle} />
{:else}
<img
bind:this={img}
@ -64,11 +71,7 @@
src={url}
alt={loaded || errored ? altText : ''}
{title}
class="object-cover {border ? 'border-[3px] border-immich-dark-primary/80 hover:border-immich-primary' : ''}"
class:rounded-xl={curve}
class:shadow-lg={shadow}
class:rounded-full={circle}
class:aspect-square={circle || !heightStyle}
class="object-cover {optionalClasses}"
class:opacity-0={!thumbhash && !loaded}
draggable="false"
/>

View File

@ -11,7 +11,7 @@
</script>
{#if isBroken}
<BrokenAsset noMessage />
<BrokenAsset hideMessage class="aspect-square rounded-xl" />
{:else}
<img
{alt}