feat: refresh the grid after add, edit or update an item
This commit is contained in:
		| @@ -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> | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Rodolfo Ruiz
					Rodolfo Ruiz