From eec8f2417eb85d77a2f59efd500f46f377ad6779 Mon Sep 17 00:00:00 2001 From: Dylan De Faoite Date: Wed, 4 Mar 2026 22:32:12 +0000 Subject: [PATCH] feat(frontend): add ability to delete datasets --- frontend/src/pages/DatasetEdit.tsx | 33 ++++++++++++++++++++++++ frontend/src/styles/stats/foundations.ts | 10 +++++++ 2 files changed, 43 insertions(+) diff --git a/frontend/src/pages/DatasetEdit.tsx b/frontend/src/pages/DatasetEdit.tsx index dc3a818..1f21ce1 100644 --- a/frontend/src/pages/DatasetEdit.tsx +++ b/frontend/src/pages/DatasetEdit.tsx @@ -23,6 +23,12 @@ const DatasetEditPage = () => { const [datasetName, setDatasetName] = useState(""); + const token = localStorage.getItem("access_token"); + if (!token) { + setHasError(true); + setStatusMessage("You must be signed in to save changes."); + } + useEffect(() => { if (!Number.isInteger(parsedDatasetId) || parsedDatasetId <= 0) { setHasError(true); @@ -59,6 +65,7 @@ const DatasetEditPage = () => { }); }, [parsedDatasetId]); + const saveDatasetName = async (event: FormEvent) => { event.preventDefault(); @@ -100,6 +107,23 @@ const DatasetEditPage = () => { } }; + const deleteDataset = async () => { + try{ + await axios.delete( + `${API_BASE_URL}/dataset/${parsedDatasetId}`, + { headers: { Authorization: `Bearer ${token}` } } + ); + navigate("/datasets", { replace: true }); + } catch (error: unknown) { + setHasError(true); + if (axios.isAxiosError(error)) { + setStatusMessage(String(error.response?.data?.error || error.message || "Save failed.")); + } else { + setStatusMessage("Save failed due to an unexpected error."); + } + } + } + return (
@@ -132,6 +156,15 @@ const DatasetEditPage = () => { />
+ +