diff --git a/src/handlers/api/asset.handler.ts b/src/handlers/api/asset.handler.ts index 31f3101..82822c5 100644 --- a/src/handlers/api/asset.handler.ts +++ b/src/handlers/api/asset.handler.ts @@ -73,7 +73,7 @@ export const getAssetGeoHeatmap = async (filters: IHeatMapParams) => { } export const deleteAssets = async (ids: string[], options: { force?: boolean } = { force: true }) => { - return API.delete(UPDATE_ASSETS_PATH, { ids, force: true }); + return API.delete(UPDATE_ASSETS_PATH, { ids, force: options.force }); } export interface IEmptyVideosParams { diff --git a/src/pages/assets/empty-videos.tsx b/src/pages/assets/empty-videos.tsx index 8b0a5e1..c99bbb0 100644 --- a/src/pages/assets/empty-videos.tsx +++ b/src/pages/assets/empty-videos.tsx @@ -6,7 +6,7 @@ import { listEmptyVideos, deleteAssets } from '@/handlers/api/asset.handler' import { IAsset } from '@/types/asset' import React, { useEffect, useState, useMemo, useRef } from 'react' import { useRouter } from 'next/router' -import { Camera, Trash2 } from 'lucide-react' +import { Camera, Trash2, Trash } from 'lucide-react' import { humanizeNumber } from '@/helpers/string.helper' import PhotoSelectionContext, { IPhotoSelectionContext } from '@/contexts/PhotoSelectionContext' import FloatingBar from '@/components/shared/FloatingBar' @@ -101,8 +101,20 @@ export default function EmptyVideosPage() { }) } - const handleDelete = (force?: boolean) => { - return deleteAssets(contextState.selectedIds, { force }).then(() => { + const handleDelete = () => { + return deleteAssets(contextState.selectedIds, { force: true }).then(() => { + const newAssets = contextState.assets.filter((a) => !contextState.selectedIds.includes(a.id)); + setAssets(newAssets) + contextState.updateContext({ + selectedIds: [], + assets: newAssets, + }); + }) + } + + const handleTrash = () => { + // Move assets to trash: force = false (soft delete/trash) + return deleteAssets(contextState.selectedIds, { force: false }).then(() => { const newAssets = contextState.assets.filter((a) => !contextState.selectedIds.includes(a.id)); setAssets(newAssets) contextState.updateContext({ @@ -261,10 +273,21 @@ export default function EmptyVideosPage() { )}
+