diff --git a/src/private/mongo/Admin.jsx b/src/private/mongo/Admin.jsx index 5d7f614..ffd2a63 100644 --- a/src/private/mongo/Admin.jsx +++ b/src/private/mongo/Admin.jsx @@ -42,22 +42,8 @@ export default function Admin() { useEffect(() => { let isMounted = true; - - getExternalData() - .then(data => { - if (isMounted) { - const safeData = Array.isArray(data) ? data : []; - setRows(safeData); - } - }) - .catch(error => { - console.error('Error loading data:', error); - if (isMounted) setRows([]); - }); - - return () => { - isMounted = false; - }; + loadData(); + return () => { isMounted = false }; }, []); const handleEditClick = (params) => { @@ -73,7 +59,7 @@ export default function Admin() { const handleConfirmDelete = async () => { try { await deleteExternalData(rowToDelete._Id); - setRows((prevRows) => prevRows.filter(r => r._Id !== rowToDelete._Id)); + await loadData(); } catch (error) { console.error('Delete failed:', error); } finally { @@ -82,6 +68,17 @@ export default function Admin() { } }; + const loadData = async () => { + try { + const data = await getExternalData(); + const safeData = Array.isArray(data) ? data : []; + setRows(safeData); + } catch (error) { + console.error('Error loading data:', error); + setRows([]); + } + }; + const columns = [ ...columnsBase, { @@ -128,7 +125,18 @@ export default function Admin() { { setOpen(false); setEditingData(null); }} maxWidth="md" fullWidth> {editingData ? 'Edit Item' : 'Add Item'} - { }} initialData={editingData} onCancel={() => { setOpen(false); setEditingData(null); }} /> + { + await loadData(); + setOpen(false); + setEditingData(null); + }} + initialData={editingData} + onCancel={() => { + setOpen(false); + setEditingData(null); + }} + />