diff --git a/Channel-Frontend/src/pages/AssetsPage.tsx b/Channel-Frontend/src/pages/AssetsPage.tsx index fd45f1b..dbcbb29 100644 --- a/Channel-Frontend/src/pages/AssetsPage.tsx +++ b/Channel-Frontend/src/pages/AssetsPage.tsx @@ -29,6 +29,7 @@ import { ManageGroupsModal } from "../features/assets/components/ManageGroupsMod import { PageHeader } from "../components/ui/PageHeader"; import Button from "../components/ui/Button"; import { PageLayout } from "../components/layout/PageLayout"; +import Modal from "../components/ui/Modal"; // Type Definitions import type { Asset, Organization } from "../types/assets"; @@ -74,6 +75,7 @@ export const AssetsPage = () => { const [activeMenuId, setActiveMenuId] = useState(null); const [selectedAssetIds, setSelectedAssetIds] = useState([]); const [expandedAssetId, setExpandedAssetId] = useState(null); + const [assetToDelete, setAssetToDelete] = useState<{ id: string, title: string } | null>(null); useEffect(() => { fetchData(); @@ -138,16 +140,19 @@ export const AssetsPage = () => { setIsDetailsOpen(true); }; - const handleDeleteAsset = async (id: string) => { + const handleDeleteAsset = (id: string) => { const asset = assets.find(a => a.id === id); - const title = asset ? asset.title : "this asset"; - if ( - !window.confirm(`Are you sure you want to permanently delete "${title}"?`) - ) - return; + if (asset) { + setAssetToDelete({ id: asset.id, title: asset.title }); + } + }; + + const confirmDeleteAsset = async () => { + if (!assetToDelete) return; try { - await deleteAsset(id); - success("Asset deleted successfully", `"${title}" has been permanently removed.`); + await deleteAsset(assetToDelete.id); + success("Asset deleted successfully", `"${assetToDelete.title}" has been permanently removed.`); + setAssetToDelete(null); await fetchData(); } catch (err: any) { console.error("Failed to delete asset", err); @@ -474,6 +479,37 @@ export const AssetsPage = () => { groups={groups} onRefresh={fetchData} /> + + {/* Delete Confirmation Modal */} + setAssetToDelete(null)} + title="Delete Asset" + subtitle="Confirm permanent resource deletion." + size="sm" + > +
+

+ Are you sure you want to permanently delete "{assetToDelete?.title}"? This action cannot be undone. +

+
+ + +
+
+
); };