diff --git a/web/core/components/core/modals/user-image-upload-modal.tsx b/web/core/components/core/modals/user-image-upload-modal.tsx index 7604c679917..ad7a4daacf6 100644 --- a/web/core/components/core/modals/user-image-upload-modal.tsx +++ b/web/core/components/core/modals/user-image-upload-modal.tsx @@ -13,6 +13,7 @@ import { Button, TOAST_TYPE, setToast } from "@plane/ui"; import { MAX_STATIC_FILE_SIZE } from "@/constants/common"; // helpers import { getAssetIdFromUrl, getFileURL } from "@/helpers/file.helper"; +import { checkURLValidity } from "@/helpers/string.helper"; // services import { FileService } from "@/services/file.service"; const fileService = new FileService(); @@ -77,10 +78,14 @@ export const UserImageUploadModal: React.FC = observer((props) => { const handleImageRemove = async () => { if (!value) return; - const assetID = getAssetIdFromUrl(value); setIsRemoving(true); try { - await fileService.deleteUserAsset(assetID); + if (checkURLValidity(value)) { + await fileService.deleteOldUserAsset(value); + } else { + const assetId = getAssetIdFromUrl(value); + await fileService.deleteUserAsset(assetId); + } await handleRemove(); } catch (error) { console.log("Error in uploading user asset:", error); diff --git a/web/core/components/core/modals/workspace-image-upload-modal.tsx b/web/core/components/core/modals/workspace-image-upload-modal.tsx index a7c771c9904..cc7248a626d 100644 --- a/web/core/components/core/modals/workspace-image-upload-modal.tsx +++ b/web/core/components/core/modals/workspace-image-upload-modal.tsx @@ -13,6 +13,7 @@ import { Button } from "@plane/ui"; import { MAX_STATIC_FILE_SIZE } from "@/constants/common"; // helpers import { getAssetIdFromUrl, getFileURL } from "@/helpers/file.helper"; +import { checkURLValidity } from "@/helpers/string.helper"; // hooks import { useWorkspace } from "@/hooks/store"; // services @@ -84,10 +85,14 @@ export const WorkspaceImageUploadModal: React.FC = observer((props) => { const handleImageRemove = async () => { if (!workspaceSlug || !value) return; - const assetId = getAssetIdFromUrl(value); setIsRemoving(true); try { - await fileService.deleteWorkspaceAsset(workspaceSlug.toString(), assetId); + if (checkURLValidity(value)) { + await fileService.deleteOldWorkspaceAsset(currentWorkspace?.id ?? "", value); + } else { + const assetId = getAssetIdFromUrl(value); + await fileService.deleteWorkspaceAsset(workspaceSlug.toString(), assetId); + } await handleRemove(); handleClose(); } catch (error) { diff --git a/web/core/services/file.service.ts b/web/core/services/file.service.ts index 129f0ef2684..d1f654ba717 100644 --- a/web/core/services/file.service.ts +++ b/web/core/services/file.service.ts @@ -183,7 +183,7 @@ export class FileService extends APIService { }); } - async deleteOldEditorAsset(workspaceId: string, src: string): Promise { + async deleteOldWorkspaceAsset(workspaceId: string, src: string): Promise { const assetKey = getAssetIdFromUrl(src); return this.delete(`/api/workspaces/file-assets/${workspaceId}/${assetKey}/`) .then((response) => response?.status) @@ -192,6 +192,15 @@ export class FileService extends APIService { }); } + async deleteOldUserAsset(src: string): Promise { + const assetKey = getAssetIdFromUrl(src); + return this.delete(`/api/users/file-assets/${assetKey}/`) + .then((response) => response?.status) + .catch((error) => { + throw error?.response?.data; + }); + } + async restoreNewAsset(workspaceSlug: string, src: string): Promise { // remove the last slash and get the asset id const assetId = getAssetIdFromUrl(src); diff --git a/web/helpers/editor.helper.ts b/web/helpers/editor.helper.ts index c323a0cbd25..81689c7eed0 100644 --- a/web/helpers/editor.helper.ts +++ b/web/helpers/editor.helper.ts @@ -61,7 +61,7 @@ export const getEditorFileHandlers = (args: TArgs): TFileHandler => { upload: uploadFile, delete: async (src: string) => { if (checkURLValidity(src)) { - await fileService.deleteOldEditorAsset(workspaceId, src); + await fileService.deleteOldWorkspaceAsset(workspaceId, src); } else { await fileService.deleteNewAsset( getEditorAssetSrc({