Skip to content

Commit 9305d53

Browse files
committed
feat: add confirmation dialog to site deletion plus edit handleSave so it goes back after site is saved
1 parent afa04c0 commit 9305d53

File tree

2 files changed

+21
-11
lines changed

2 files changed

+21
-11
lines changed

src/admin/CreateEditSite.tsx

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,38 +52,43 @@ export default function CreateEditSite({ mode }: CreateEditSiteProps) {
5252
const [boundaryPoints, setBoundaryPoints] = useState<BoundaryPoint[]>([]);
5353

5454
const editSite = (site: Site) => {
55-
apiClient
55+
return apiClient
5656
.PUT('/api/secure-site', {
5757
body: siteToSchema(site),
5858
})
5959
.then(res => {
6060
const { data, error } = res;
6161
if (error) {
6262
console.error(`Failed to edit site: ${error}`);
63-
return;
63+
return Promise.reject(error);
6464
}
6565
console.log(`Successfully edited site: ${site.name}`);
66+
return data;
6667
})
6768
.catch(err => {
6869
console.error(`Error editing site: ${err}`);
70+
return Promise.reject(err);
6971
});
7072
};
7173

74+
7275
const createSite = (site: Site) => {
73-
apiClient
76+
return apiClient
7477
.POST('/api/secure-site', {
7578
body: siteToSchema(site),
7679
})
7780
.then(res => {
7881
const { data, error } = res;
7982
if (error) {
8083
console.error(`Failed to create site: ${error}`);
81-
return;
84+
return Promise.reject(error);
8285
}
8386
console.log(`Successfully created site: ${site.name}`);
87+
return data;
8488
})
8589
.catch(err => {
8690
console.error(`Error creating site: ${err}`);
91+
return Promise.reject(err);
8792
});
8893
};
8994

@@ -110,11 +115,12 @@ export default function CreateEditSite({ mode }: CreateEditSiteProps) {
110115
])
111116
: undefined,
112117
};
113-
if (mode === 'edit') {
114-
editSite(site);
115-
} else {
116-
createSite(site);
117-
}
118+
const savePromise =
119+
mode === 'edit' ? editSite(site) : createSite(site);
120+
121+
savePromise.then(() => {
122+
handleBack();
123+
});
118124
}
119125
};
120126

src/admin/ListSites.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,15 @@ export default function ListSites() {
5959
const handleDelete = (siteName: string) => {
6060
const site = sites.find(s => s.name === siteName);
6161
if (site) {
62-
deleteSite(site);
63-
reloadSites();
62+
const confirmed = window.confirm(`Are you sure you want to delete "${site.name}"?`);
63+
if (confirmed) {
64+
deleteSite(site);
65+
reloadSites();
66+
}
6467
}
6568
};
6669

70+
6771
const handleAdd = () => {
6872
console.log('Add new site');
6973
window.open('/admin/create-site', '_self');

0 commit comments

Comments
 (0)