diff --git a/web/src/lib/components/asset-viewer/asset-viewer.svelte b/web/src/lib/components/asset-viewer/asset-viewer.svelte index 6284e207c6..06f4e5a0b2 100644 --- a/web/src/lib/components/asset-viewer/asset-viewer.svelte +++ b/web/src/lib/components/asset-viewer/asset-viewer.svelte @@ -14,6 +14,7 @@ import { eventManager } from '$lib/managers/event-manager.svelte'; import { imageManager } from '$lib/managers/ImageManager.svelte'; import { Route } from '$lib/route'; + import { getAssetActions } from '$lib/services/asset.service'; import { assetViewingStore } from '$lib/stores/asset-viewing.store'; import { ocrManager } from '$lib/stores/ocr.svelte'; import { alwaysLoadOriginalVideo } from '$lib/stores/preferences.store'; @@ -36,6 +37,7 @@ type PersonResponseDto, type StackResponseDto, } from '@immich/sdk'; + import { CommandPaletteDefaultProvider } from '@immich/ui'; import { onDestroy, onMount, untrack } from 'svelte'; import { t } from 'svelte-i18n'; import { fly } from 'svelte/transition'; @@ -426,8 +428,11 @@ !assetViewerManager.isShowEditor && ocrManager.hasOcrData, ); + + const { Tag } = $derived(getAssetActions($t, asset)); + diff --git a/web/src/lib/components/asset-viewer/detail-panel-tags.svelte b/web/src/lib/components/asset-viewer/detail-panel-tags.svelte index cd9b1a40d2..09c4432723 100644 --- a/web/src/lib/components/asset-viewer/detail-panel-tags.svelte +++ b/web/src/lib/components/asset-viewer/detail-panel-tags.svelte @@ -1,12 +1,13 @@ - + {#if isOwner && !authManager.isSharedLink}
@@ -42,36 +44,24 @@
{#each tags as tag (tag.id)} -
- + -

- {tag.value} -

-
- - -
+ size="tiny" + class="hover:bg-primary-400" + shape="round" + /> + {/each} - +
{/if} diff --git a/web/src/lib/components/timeline/actions/TagAction.svelte b/web/src/lib/components/timeline/actions/TagAction.svelte index d2235d7c74..dfe24b476b 100644 --- a/web/src/lib/components/timeline/actions/TagAction.svelte +++ b/web/src/lib/components/timeline/actions/TagAction.svelte @@ -20,11 +20,8 @@ const handleTagAssets = async () => { const assets = [...getOwnedAssets()]; - const success = await modalManager.show(AssetTagModal, { assetIds: assets.map(({ id }) => id) }); - - if (success) { - clearSelect(); - } + await modalManager.show(AssetTagModal, { assetIds: assets.map(({ id }) => id) }); + clearSelect(); }; diff --git a/web/src/lib/managers/event-manager.svelte.ts b/web/src/lib/managers/event-manager.svelte.ts index 4825dbc93b..4093413d1a 100644 --- a/web/src/lib/managers/event-manager.svelte.ts +++ b/web/src/lib/managers/event-manager.svelte.ts @@ -37,6 +37,7 @@ export type Events = { AssetsArchive: [string[]]; AssetsDelete: [string[]]; AssetEditsApplied: [string]; + AssetsTag: [string[]]; AlbumAddAssets: []; AlbumUpdate: [AlbumResponseDto]; diff --git a/web/src/lib/modals/AssetTagModal.svelte b/web/src/lib/modals/AssetTagModal.svelte index e541e24b60..00862ce1b1 100644 --- a/web/src/lib/modals/AssetTagModal.svelte +++ b/web/src/lib/modals/AssetTagModal.svelte @@ -1,4 +1,5 @@