1
0
mirror of https://github.com/immich-app/immich.git synced 2025-02-03 18:33:20 +02:00

feat(web): cancel pending requests on image change (#4145)

This commit is contained in:
Louis-Marie Michelin 2023-09-20 05:16:53 +02:00 committed by GitHub
parent 9030b1f89f
commit 816db700e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,6 +1,6 @@
<script lang="ts">
import { fade } from 'svelte/transition';
import { onMount } from 'svelte';
import { onDestroy, onMount } from 'svelte';
import LoadingSpinner from '../shared-components/loading-spinner.svelte';
import { api, AssetResponseDto } from '@api';
import { notificationController, NotificationType } from '../shared-components/notification/notification';
@ -13,6 +13,7 @@
let imgElement: HTMLDivElement;
let assetData: string;
let abortController: AbortController;
let hasZoomed = false;
let copyImageToClipboard: (src: string) => Promise<Blob>;
let canCopyImagesToClipboard: () => boolean;
@ -25,12 +26,20 @@
canCopyImagesToClipboard = module.canCopyImagesToClipboard;
});
onDestroy(() => {
abortController?.abort();
});
const loadAssetData = async ({ loadOriginal }: { loadOriginal: boolean }) => {
try {
abortController?.abort();
abortController = new AbortController();
const { data } = await api.assetApi.serveFile(
{ id: asset.id, isThumb: false, isWeb: !loadOriginal, key: api.getKey() },
{
responseType: 'blob',
signal: abortController.signal,
},
);