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