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(() => { |     useEffect(() => { | ||||||
|         let isMounted = true; |         let isMounted = true; | ||||||
|  |         loadData(); | ||||||
|         getExternalData() |         return () => { isMounted = false }; | ||||||
|             .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; |  | ||||||
|         }; |  | ||||||
|     }, []); |     }, []); | ||||||
|  |  | ||||||
|     const handleEditClick = (params) => { |     const handleEditClick = (params) => { | ||||||
| @@ -73,7 +59,7 @@ export default function Admin() { | |||||||
|     const handleConfirmDelete = async () => { |     const handleConfirmDelete = async () => { | ||||||
|         try { |         try { | ||||||
|             await deleteExternalData(rowToDelete._Id); |             await deleteExternalData(rowToDelete._Id); | ||||||
|             setRows((prevRows) => prevRows.filter(r => r._Id !== rowToDelete._Id)); |             await loadData(); | ||||||
|         } catch (error) { |         } catch (error) { | ||||||
|             console.error('Delete failed:', error); |             console.error('Delete failed:', error); | ||||||
|         } finally { |         } 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 = [ |     const columns = [ | ||||||
|         ...columnsBase, |         ...columnsBase, | ||||||
|         { |         { | ||||||
| @@ -128,7 +125,18 @@ export default function Admin() { | |||||||
|             <Dialog open={open} onClose={() => { setOpen(false); setEditingData(null); }} maxWidth="md" fullWidth> |             <Dialog open={open} onClose={() => { setOpen(false); setEditingData(null); }} maxWidth="md" fullWidth> | ||||||
|                 <DialogTitle>{editingData ? 'Edit Item' : 'Add Item'}</DialogTitle> |                 <DialogTitle>{editingData ? 'Edit Item' : 'Add Item'}</DialogTitle> | ||||||
|                 <DialogContent> |                 <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> |                 </DialogContent> | ||||||
|             </Dialog> |             </Dialog> | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Rodolfo Ruiz
					Rodolfo Ruiz