From ec1fbcc62ceef0cfd824280a56240fbba0493573 Mon Sep 17 00:00:00 2001 From: Johanna Szepanski <johanna.szepanski@softhouse.se> Date: Thu, 5 Dec 2024 14:21:48 +0100 Subject: [PATCH] unwrap delete call to handle success and error correctly --- src/components/IOC/IOCDelete/IOCDelete.jsx | 44 +++++++--------------- 1 file changed, 14 insertions(+), 30 deletions(-) diff --git a/src/components/IOC/IOCDelete/IOCDelete.jsx b/src/components/IOC/IOCDelete/IOCDelete.jsx index a14a5141..cb489fed 100644 --- a/src/components/IOC/IOCDelete/IOCDelete.jsx +++ b/src/components/IOC/IOCDelete/IOCDelete.jsx @@ -1,4 +1,4 @@ -import { useState, useEffect, useCallback } from "react"; +import { useState, useCallback } from "react"; import { useNavigate } from "react-router-dom"; import { Box, Button, Grid, Tooltip, Typography } from "@mui/material"; import { ConfirmDangerActionDialog } from "@ess-ics/ce-ui-common"; @@ -12,30 +12,7 @@ export const IOCDelete = ({ ioc, buttonDisabled, setButtonDisabled }) => { const showSnackBar = useCustomSnackbar(); const [error, setError] = useState(); const [open, setOpen] = useState(false); - const [deleteIOC, { data: deleteIOCResponse, error: deleteIOCError }] = - useDeleteIocMutation(); - - useEffect(() => { - if (deleteIOCError) { - setButtonDisabled(false); - setError(deleteIOCError); - } - }, [deleteIOCError, setError, setButtonDisabled]); - - useEffect(() => { - if (deleteIOCResponse) { - setButtonDisabled(false); - showSnackBar(`IOC ${ioc.namingName} deleted`, "success"); - navigate("/iocs"); - } - }, [ - deleteIOCResponse, - navigate, - error, - setButtonDisabled, - ioc.namingName, - showSnackBar - ]); + const [deleteIOC] = useDeleteIocMutation(); let disabledButtonTitle = ""; @@ -48,12 +25,19 @@ export const IOCDelete = ({ ioc, buttonDisabled, setButtonDisabled }) => { setOpen(false); }, [setOpen]); - const onConfirm = useCallback(() => { + const onConfirm = useCallback(async () => { setButtonDisabled(true); - deleteIOC({ - iocId: ioc?.id - }); - }, [ioc, deleteIOC, setButtonDisabled]); + deleteIOC({ iocId: ioc.id }) + .unwrap() + .then(() => { + showSnackBar(`IOC ${ioc.namingName} deleted`, "success"); + navigate("/iocs", { replace: true }); + }) + .catch((error) => { + setError(error); + setButtonDisabled(false); + }); + }, [ioc, deleteIOC, setButtonDisabled, navigate, showSnackBar]); return ( <> -- GitLab