feat: refresh the grid after add, edit or update an item

This commit is contained in:
Rodolfo Ruiz
2025-06-25 20:17:00 -06:00
parent c9de10c46e
commit 2849ee2e6b

View File

@@ -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() {
<Dialog open={open} onClose={() => { setOpen(false); setEditingData(null); }} maxWidth="md" fullWidth>
<DialogTitle>{editingData ? 'Edit Item' : 'Add Item'}</DialogTitle>
<DialogContent>
<AddOrEditAdminForm onAdd={() => { }} initialData={editingData} onCancel={() => { setOpen(false); setEditingData(null); }} />
<AddOrEditAdminForm
onAdd={async () => {
await loadData();
setOpen(false);
setEditingData(null);
}}
initialData={editingData}
onCancel={() => {
setOpen(false);
setEditingData(null);
}}
/>
</DialogContent>
</Dialog>