From 48eb747da0a1349c05b28f8a4258f0c1faedb8a8 Mon Sep 17 00:00:00 2001 From: Dominik Prokop Date: Tue, 16 Mar 2021 17:10:47 +0100 Subject: [PATCH] Routing NG: Fix persistent modal after dashboard delete (#32033) --- .../DeleteDashboard/DeleteDashboardModal.tsx | 11 +++++++++-- .../components/DeleteDashboard/useDashboardDelete.tsx | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/public/app/features/dashboard/components/DeleteDashboard/DeleteDashboardModal.tsx b/public/app/features/dashboard/components/DeleteDashboard/DeleteDashboardModal.tsx index 8123b2e8abf..b99d8cad87b 100644 --- a/public/app/features/dashboard/components/DeleteDashboard/DeleteDashboardModal.tsx +++ b/public/app/features/dashboard/components/DeleteDashboard/DeleteDashboardModal.tsx @@ -4,6 +4,7 @@ import sumBy from 'lodash/sumBy'; import { Modal, ConfirmModal, HorizontalGroup, Button } from '@grafana/ui'; import { DashboardModel, PanelModel } from '../../state'; import { useDashboardDelete } from './useDashboardDelete'; +import useAsyncFn from 'react-use/lib/useAsyncFn'; type DeleteDashboardModalProps = { hideModal(): void; @@ -12,7 +13,13 @@ type DeleteDashboardModalProps = { export const DeleteDashboardModal: React.FC = ({ hideModal, dashboard }) => { const isProvisioned = dashboard.meta.provisioned; - const { onRestoreDashboard } = useDashboardDelete(dashboard.uid); + const { onDeleteDashboard } = useDashboardDelete(dashboard.uid); + + const [, onConfirm] = useAsyncFn(async () => { + await onDeleteDashboard(); + hideModal(); + }, [hideModal]); + const modalBody = getModalBody(dashboard.panels, dashboard.title); if (isProvisioned) { @@ -23,7 +30,7 @@ export const DeleteDashboardModal: React.FC = ({ hide { - const [state, onRestoreDashboard] = useAsyncFn(() => deleteDashboard(uid, false), []); + const [state, onDeleteDashboard] = useAsyncFn(() => deleteDashboard(uid, false), []); useEffect(() => { if (state.value) { @@ -15,5 +15,5 @@ export const useDashboardDelete = (uid: string) => { } }, [state]); - return { state, onRestoreDashboard }; + return { state, onDeleteDashboard }; };