diff --git a/web/src/lib/components/asset-viewer/asset-viewer.svelte b/web/src/lib/components/asset-viewer/asset-viewer.svelte index a7e4b87195..f8f1891616 100644 --- a/web/src/lib/components/asset-viewer/asset-viewer.svelte +++ b/web/src/lib/components/asset-viewer/asset-viewer.svelte @@ -732,7 +732,8 @@ ? 'bg-transparent border-2 border-white' : 'bg-gray-700/40'} inline-block hover:bg-transparent" asset={stackedAsset} - onClick={() => { + onClick={(stackedAsset, event) => { + event.preventDefault(); asset = stackedAsset; preloadAssets = index + 1 >= $stackAssetsStore.length ? [] : [$stackAssetsStore[index + 1]]; }} @@ -740,7 +741,6 @@ readonly thumbnailSize={stackedAsset.id == asset.id ? 65 : 60} showStackedIcon={false} - isStackSlideshow={true} /> {#if stackedAsset.id == asset.id} diff --git a/web/src/lib/components/assets/thumbnail/thumbnail.svelte b/web/src/lib/components/assets/thumbnail/thumbnail.svelte index f61e54072d..6c166fdf38 100644 --- a/web/src/lib/components/assets/thumbnail/thumbnail.svelte +++ b/web/src/lib/components/assets/thumbnail/thumbnail.svelte @@ -22,7 +22,6 @@ import { fade } from 'svelte/transition'; import ImageThumbnail from './image-thumbnail.svelte'; import VideoThumbnail from './video-thumbnail.svelte'; - import { shortcut } from '$lib/actions/shortcut'; import { currentUrlReplaceAssetId } from '$lib/utils/navigation'; const dispatch = createEventDispatcher<{ @@ -37,14 +36,12 @@ export let thumbnailHeight: number | undefined = undefined; export let selected = false; export let selectionCandidate = false; - export let isMultiSelectState = false; - export let isStackSlideshow = false; export let disabled = false; export let readonly = false; export let showArchiveIcon = false; export let showStackedIcon = true; export let href: string | undefined = undefined; - export let onClick: ((asset: AssetResponseDto) => void) | undefined = undefined; + export let onClick: ((asset: AssetResponseDto, event: Event) => void) | undefined = undefined; let className = ''; export { className as class }; @@ -65,14 +62,6 @@ return [235, 235]; })(); - const thumbnailClickedHandler = (e: Event) => { - e.stopPropagation(); - e.preventDefault(); - if (!disabled) { - onClick?.(asset); - } - }; - const onIconClickedHandler = (e: MouseEvent) => { e.stopPropagation(); e.preventDefault(); @@ -81,12 +70,17 @@ } }; - const handleClick = (e: Event) => { - if (isMultiSelectState) { - onIconClickedHandler(e as MouseEvent); - } else if (isStackSlideshow) { - thumbnailClickedHandler(e); + const handleClick = (e: MouseEvent) => { + if (e.ctrlKey || e.metaKey) { + return; } + + if (selected) { + onIconClickedHandler(e); + return; + } + + onClick?.(asset, e); }; const onMouseEnter = () => { @@ -111,7 +105,6 @@ on:mouseleave={onMouseLeave} tabindex={0} on:click={handleClick} - use:shortcut={{ shortcut: { key: 'Enter' }, onShortcut: thumbnailClickedHandler }} > {#if intersecting}