diff --git a/src/api/ProductsApi.js b/src/api/ProductsApi.js index b98bb6d..2ee0d92 100644 --- a/src/api/ProductsApi.js +++ b/src/api/ProductsApi.js @@ -52,4 +52,15 @@ export default class ProductsApi { if (!res.ok) throw new Error(`Delete error ${res.status}: ${await res.text()}`); return res.json(); } + + async changeStatusVariant(payload) { + // If your API is change status, reuse updateVariant. + const res = await fetch(`${this.baseUrl}/ChangeStatus`, { + method: 'PATCH', + headers: this.headers(), + body: JSON.stringify(payload), + }); + if (!res.ok) throw new Error(`ChangeStatus error ${res.status}: ${await res.text()}`); + return res.json(); + } } \ No newline at end of file diff --git a/src/private/catalogs/categories/Categories.jsx b/src/private/catalogs/categories/Categories.jsx index 9da0707..48da03c 100644 --- a/src/private/catalogs/categories/Categories.jsx +++ b/src/private/catalogs/categories/Categories.jsx @@ -370,8 +370,8 @@ export default function Categories() { Delete Category - - + + diff --git a/src/private/catalogs/products/ProductCollections.jsx b/src/private/catalogs/products/ProductCollections.jsx index 6c1115b..f0153f2 100644 --- a/src/private/catalogs/products/ProductCollections.jsx +++ b/src/private/catalogs/products/ProductCollections.jsx @@ -55,6 +55,8 @@ export default function ProductCollections() { const [viewOnly, setViewOnly] = useState(false); + const [confirmOpen, setConfirmOpen] = useState(false); + // Tags const [loadingTags, setLoadingTags] = useState(true); const [typeMap, setTypeMap] = useState({}); @@ -167,6 +169,26 @@ export default function ProductCollections() { } }, [statusFilter, rawRows]); + const handleDeleteClick = (row) => { + setEditRow(row); + setConfirmOpen(true); + }; + + const confirmDelete = async () => { + try { + if (!editRow?.id) return; + await api.changeStatusVariant({ mongoId: editRow.id, status: 'Inactive' }); + await load(); + toast.success('Deleted successfully'); + } catch (err) { + console.error(err); + toast.error(err?.message || 'Delete failed'); + } finally { + setConfirmOpen(false); + setEditRow(null); + } + }; + const columns = [ { field: 'actions', @@ -212,7 +234,7 @@ export default function ProductCollections() { borderRadius: 2, p: 1, }} - onClick={() => { setEditRow(params.row); setViewOnly(false); handleDeleteClick(params?.row); }} + onClick={() => { setViewOnly(false); handleDeleteClick(params?.row); }} > @@ -362,6 +384,16 @@ export default function ProductCollections() { /> + + setConfirmOpen(false)}> + Delete Product Collection + + + + + + + ); }