refactor: shared-link service (#23770)

This commit is contained in:
Jason Rasmussen
2025-11-10 15:49:02 -05:00
committed by GitHub
parent 9e2208b8dd
commit dea95ac2e6
12 changed files with 128 additions and 163 deletions
@@ -7,9 +7,7 @@
import { AppRoute } from '$lib/constants';
import GroupTab from '$lib/elements/GroupTab.svelte';
import SharedLinkCreateModal from '$lib/modals/SharedLinkCreateModal.svelte';
import { handleError } from '$lib/utils/handle-error';
import { getAllSharedLinks, removeSharedLink, SharedLinkType, type SharedLinkResponseDto } from '@immich/sdk';
import { modalManager, toastManager } from '@immich/ui';
import { getAllSharedLinks, SharedLinkType, type SharedLinkResponseDto } from '@immich/sdk';
import { onMount } from 'svelte';
import { t } from 'svelte-i18n';
import type { PageData } from './$types';
@@ -31,26 +29,6 @@
await refresh();
});
const handleDeleteLink = async (id: string) => {
const isConfirmed = await modalManager.showDialog({
title: $t('delete_shared_link'),
prompt: $t('confirm_delete_shared_link'),
confirmText: $t('delete'),
});
if (!isConfirmed) {
return;
}
try {
await removeSharedLink({ id });
toastManager.success($t('deleted_shared_link'));
await refresh();
} catch (error) {
handleError(error, $t('errors.unable_to_delete_shared_link'));
}
};
type Filter = 'all' | 'album' | 'individual';
const filterMap: Record<Filter, string> = {
@@ -87,9 +65,13 @@
sharedLinks[index] = sharedLink;
}
};
const onSharedLinkDelete = (sharedLink: SharedLinkResponseDto) => {
sharedLinks = sharedLinks.filter(({ id }) => id !== sharedLink.id);
};
</script>
<OnEvents {onSharedLinkUpdate} />
<OnEvents {onSharedLinkUpdate} {onSharedLinkDelete} />
<UserPageLayout title={data.meta.title}>
{#snippet buttons()}
@@ -108,7 +90,7 @@
{:else}
<div class="flex flex-col gap-2">
{#each filteredSharedLinks as sharedLink (sharedLink.id)}
<SharedLinkCard {sharedLink} onDelete={() => handleDeleteLink(sharedLink.id)} />
<SharedLinkCard {sharedLink} />
{/each}
</div>
{/if}