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 d2f1ba3b98..bb52c71260 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
@@ -21,7 +21,7 @@
import { languageManager } from '$lib/managers/language-manager.svelte';
import { Route } from '$lib/route';
import { getGlobalActions } from '$lib/services/app.service';
- import { getAssetActions, handleReplaceAsset } from '$lib/services/asset.service';
+ import { getAssetActions } from '$lib/services/asset.service';
import { user } from '$lib/stores/user.store';
import { getSharedLink, withoutIcons } from '$lib/utils';
import type { OnUndoDelete } from '$lib/utils/actions';
@@ -42,7 +42,6 @@
mdiDotsVertical,
mdiImageSearch,
mdiPresentationPlay,
- mdiUpload,
mdiVideoOutline,
} from '@mdi/js';
import { t } from 'svelte-i18n';
@@ -170,11 +169,6 @@
{#if !isLocked}
{#if isOwner}
- handleReplaceAsset(asset.id)}
- text={$t('replace_with_upload')}
- />
{#if !asset.isArchived && !asset.isTrashed}
import { browser } from '$app/environment';
- import { goto } from '$app/navigation';
import { focusTrap } from '$lib/actions/focus-trap';
import type { Action, OnAction, PreAction } from '$lib/components/asset-viewer/actions/action';
import NextAssetAction from '$lib/components/asset-viewer/actions/next-asset-action.svelte';
import PreviousAssetAction from '$lib/components/asset-viewer/actions/previous-asset-action.svelte';
import AssetViewerNavBar from '$lib/components/asset-viewer/asset-viewer-nav-bar.svelte';
- import OnEvents from '$lib/components/OnEvents.svelte';
import { AssetAction, ProjectionType } from '$lib/constants';
import { activityManager } from '$lib/managers/activity-manager.svelte';
import { assetViewerManager } from '$lib/managers/asset-viewer-manager.svelte';
@@ -14,7 +12,6 @@
import { editManager, EditToolType } from '$lib/managers/edit/edit-manager.svelte';
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';
@@ -363,21 +360,6 @@
imageManager.preload(cursor.previousAsset);
});
- const onAssetReplace = async ({ oldAssetId, newAssetId }: { oldAssetId: string; newAssetId: string }) => {
- if (oldAssetId !== asset.id) {
- return;
- }
-
- await new Promise((promise) => setTimeout(promise, 500));
- await goto(Route.viewAsset({ id: newAssetId }));
- };
-
- const onAssetUpdate = (update: AssetResponseDto) => {
- if (asset.id === update.id) {
- cursor = { ...cursor, current: update };
- }
- };
-
const viewerKind = $derived.by(() => {
if (previewStackedAsset) {
return asset.type === AssetTypeEnum.Image ? 'StackPhotoViewer' : 'StackVideoViewer';
@@ -424,7 +406,6 @@
-
diff --git a/web/src/lib/managers/event-manager.svelte.ts b/web/src/lib/managers/event-manager.svelte.ts
index 33519fddbb..2095a001bd 100644
--- a/web/src/lib/managers/event-manager.svelte.ts
+++ b/web/src/lib/managers/event-manager.svelte.ts
@@ -33,7 +33,6 @@ export type Events = {
ApiKeyDelete: [ApiKeyResponseDto];
AssetUpdate: [AssetResponseDto];
- AssetReplace: [{ oldAssetId: string; newAssetId: string }];
AssetsArchive: [string[]];
AssetsDelete: [string[]];
AssetEditsApplied: [string];
diff --git a/web/src/lib/services/asset.service.ts b/web/src/lib/services/asset.service.ts
index a2dddbba51..9071f87f98 100644
--- a/web/src/lib/services/asset.service.ts
+++ b/web/src/lib/services/asset.service.ts
@@ -9,7 +9,6 @@ import { user as authUser, preferences } from '$lib/stores/user.store';
import type { AssetControlContext } from '$lib/types';
import { getSharedLink, sleep } from '$lib/utils';
import { downloadUrl } from '$lib/utils/asset-utils';
-import { openFileUploadDialog } from '$lib/utils/file-uploader';
import { handleError } from '$lib/utils/handle-error';
import { getFormatter } from '$lib/utils/i18n';
import { asQueryString } from '$lib/utils/shared-links';
@@ -17,8 +16,6 @@ import {
AssetJobName,
AssetTypeEnum,
AssetVisibility,
- copyAsset,
- deleteAssets,
getAssetInfo,
getBaseUrl,
runAssetJobs,
@@ -362,14 +359,6 @@ const handleUnfavorite = async (asset: AssetResponseDto) => {
}
};
-export const handleReplaceAsset = async (oldAssetId: string) => {
- const [newAssetId] = await openFileUploadDialog({ multiple: false });
- await copyAsset({ assetCopyDto: { sourceId: oldAssetId, targetId: newAssetId } });
- await deleteAssets({ assetBulkDeleteDto: { ids: [oldAssetId], force: true } });
-
- eventManager.emit('AssetReplace', { oldAssetId, newAssetId });
-};
-
const getAssetJobMessage = ($t: MessageFormatter, job: AssetJobName) => {
const messages: Record = {
[AssetJobName.RefreshFaces]: $t('refreshing_faces'),