From 8fd3e50d04a38962233b1ea18b93b29c43935b3f Mon Sep 17 00:00:00 2001 From: lemmyMwaura Date: Fri, 26 Jul 2024 19:48:30 +0300 Subject: [PATCH] feat: implement delete secret via modal logic --- .../SecretOverviewTableRow/SecretEditRow.tsx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/frontend/src/views/SecretOverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx b/frontend/src/views/SecretOverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx index fc335baec..94b7452e0 100644 --- a/frontend/src/views/SecretOverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx +++ b/frontend/src/views/SecretOverviewPage/components/SecretOverviewTableRow/SecretEditRow.tsx @@ -1,3 +1,4 @@ +import { useState, useCallback } from "react"; import { Controller, useForm } from "react-hook-form"; import { subject } from "@casl/ability"; import { faCheck, faCopy, faTrash, faXmark } from "@fortawesome/free-solid-svg-icons"; @@ -12,6 +13,8 @@ import { ProjectPermissionActions, ProjectPermissionSub } from "@app/context"; import { useToggle } from "@app/hooks"; import { SecretType } from "@app/hooks/api/types"; +import { DeleteSecretModal } from "../ManageSecretModals"; + type Props = { defaultValue?: string | null; secretName: string; @@ -59,6 +62,11 @@ export const SecretEditRow = ({ } }); const [isDeleting, setIsDeleting] = useToggle(); + const [isModalOpen, setIsModalOpen] = useState(false); + + const toggleModal = useCallback(() => { + setIsModalOpen((prev) => !prev) + }, []) const handleFormReset = () => { reset(); @@ -94,18 +102,23 @@ export const SecretEditRow = ({ reset({ value }); }; - const handleDeleteSecret = async () => { + const handleDeleteSecret = useCallback(async () => { setIsDeleting.on(); + setIsModalOpen(false); + try { await onSecretDelete(environment, secretName, secretId); reset({ value: null }); } finally { setIsDeleting.off(); } - }; + }, [onSecretDelete, environment, secretName, secretId, reset, setIsDeleting]); return (
+ + +