From 75ed98a56569154f3cc245b75415c25b0dcab594 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Fri, 9 May 2025 10:40:11 -0500 Subject: [PATCH] Catch error and show toast when failing to delete review items --- .../components/filter/ReviewActionGroup.tsx | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/web/src/components/filter/ReviewActionGroup.tsx b/web/src/components/filter/ReviewActionGroup.tsx index f443729ce..3ce0d4d1f 100644 --- a/web/src/components/filter/ReviewActionGroup.tsx +++ b/web/src/components/filter/ReviewActionGroup.tsx @@ -17,6 +17,7 @@ import { } from "../ui/alert-dialog"; import useKeyboardListener from "@/hooks/use-keyboard-listener"; import { Trans, useTranslation } from "react-i18next"; +import { toast } from "sonner"; type ReviewActionGroupProps = { selectedReviews: string[]; @@ -41,10 +42,27 @@ export default function ReviewActionGroup({ pullLatestData(); }, [selectedReviews, setSelectedReviews, pullLatestData]); - const onDelete = useCallback(async () => { - await axios.post(`reviews/delete`, { ids: selectedReviews }); - setSelectedReviews([]); - pullLatestData(); + const onDelete = useCallback(() => { + axios + .post(`reviews/delete`, { ids: selectedReviews }) + .then((resp) => { + if (resp.status === 200) { + toast.success("Reviews deleted successfully", { + position: "top-center", + }); + setSelectedReviews([]); + pullLatestData(); + } + }) + .catch((error) => { + const errorMessage = + error.response?.data?.message || + error.response?.data?.detail || + "Unknown error"; + toast.error(`Failed to delete reviews: ${errorMessage}`, { + position: "top-center", + }); + }); }, [selectedReviews, setSelectedReviews, pullLatestData]); const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);