diff --git a/web/src/lib/components/asset-viewer/actions/action.ts b/web/src/lib/components/asset-viewer/actions/action.ts index f8cfd447f0b94..40b189080ff97 100644 --- a/web/src/lib/components/asset-viewer/actions/action.ts +++ b/web/src/lib/components/asset-viewer/actions/action.ts @@ -19,3 +19,4 @@ export type Action = { [K in AssetAction]: { type: K } & ActionMap[K]; }[AssetAction]; export type OnAction = (action: Action) => void; +export type PreAction = (action: Action) => void; diff --git a/web/src/lib/components/asset-viewer/actions/delete-action.svelte b/web/src/lib/components/asset-viewer/actions/delete-action.svelte index c0f163634a83b..24ba2c845dc49 100644 --- a/web/src/lib/components/asset-viewer/actions/delete-action.svelte +++ b/web/src/lib/components/asset-viewer/actions/delete-action.svelte @@ -14,14 +14,15 @@ import { deleteAssets, type AssetResponseDto } from '@immich/sdk'; import { mdiDeleteForeverOutline, mdiDeleteOutline } from '@mdi/js'; import { t } from 'svelte-i18n'; - import type { OnAction } from './action'; + import type { OnAction, PreAction } from './action'; interface Props { asset: AssetResponseDto; onAction: OnAction; + preAction: PreAction; } - let { asset, onAction }: Props = $props(); + let { asset, onAction, preAction }: Props = $props(); let showConfirmModal = $state(false); @@ -41,6 +42,7 @@ const trashAsset = async () => { try { + preAction({ type: AssetAction.TRASH, asset }); await deleteAssets({ assetBulkDeleteDto: { ids: [asset.id] } }); onAction({ type: AssetAction.TRASH, asset }); diff --git a/web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte b/web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte index 442302198b673..a164a9e64718f 100644 --- a/web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte +++ b/web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte @@ -1,6 +1,6 @@