From 48f48bb2b5845b49ce548baf17f4e2fde5cbc2cf Mon Sep 17 00:00:00 2001 From: Jordi Enric Date: Tue, 16 Apr 2024 12:59:03 +0200 Subject: [PATCH] on delete success, redirect to main logs page --- .../DataWarehouse/WarehouseMenuItem.tsx | 23 +++++++++++-------- .../warehouse-collections-delete-mutation.ts | 13 +++++++++-- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/apps/studio/components/interfaces/DataWarehouse/WarehouseMenuItem.tsx b/apps/studio/components/interfaces/DataWarehouse/WarehouseMenuItem.tsx index 3b3fd162792..68d00c0561a 100644 --- a/apps/studio/components/interfaces/DataWarehouse/WarehouseMenuItem.tsx +++ b/apps/studio/components/interfaces/DataWarehouse/WarehouseMenuItem.tsx @@ -1,3 +1,5 @@ +import { useQueryClient } from '@tanstack/react-query' +import { useParams } from 'common' import { useDeleteCollection } from 'data/analytics/warehouse-collections-delete-mutation' import { useUpdateCollection } from 'data/analytics/warehouse-collections-update-mutation' import { useSelectedProject } from 'hooks' @@ -32,15 +34,21 @@ type Props = { export const WarehouseMenuItem = ({ item }: Props) => { const router = useRouter() - const project = useSelectedProject() - const projectRef = project?.ref || 'default' + const { ref } = useParams() + const projectRef = ref || 'default' const [showUpdateDialog, setShowUpdateDialog] = React.useState(false) const [showDeleteDialog, setDeleteDialog] = React.useState(false) const [confirmDelete, setConfirmDelete] = React.useState(false) const updateCollection = useUpdateCollection({ projectRef, collectionToken: item.token }) - const deleteCollection = useDeleteCollection({ projectRef, collectionToken: item.token }) + const deleteCollection = useDeleteCollection({ + projectRef, + collectionToken: item.token, + onSuccess: () => { + router.push(`/project/${projectRef}/logs/explorer`) + }, + }) const isLoading = updateCollection.isLoading || deleteCollection.isLoading @@ -175,15 +183,12 @@ export const WarehouseMenuItem = ({ item }: Props) => {
setConfirmDelete(!!checked)} checked={confirmDelete} - onCheckedChange={() => setConfirmDelete(!confirmDelete)} id="confirm" + name="confirm" /> - setConfirmDelete(!confirmDelete)} - className="p-2" - htmlFor="confirm" - > + Yes, I want to delete {item.name}.
diff --git a/apps/studio/data/analytics/warehouse-collections-delete-mutation.ts b/apps/studio/data/analytics/warehouse-collections-delete-mutation.ts index 6b7e635b07c..2f4f2d2193b 100644 --- a/apps/studio/data/analytics/warehouse-collections-delete-mutation.ts +++ b/apps/studio/data/analytics/warehouse-collections-delete-mutation.ts @@ -5,17 +5,26 @@ import { del } from 'data/fetchers' type DeleteCollectionArgs = { projectRef: string collectionToken: string + onSuccess: () => void } -export function useDeleteCollection({ projectRef, collectionToken }: DeleteCollectionArgs) { +export function useDeleteCollection({ + projectRef, + collectionToken, + onSuccess, +}: DeleteCollectionArgs) { const queryClient = useQueryClient() const mutation = useMutation({ mutationFn: async () => { - const resp = await del(`/platform/projects/${projectRef}/analytics/warehouse/collections/${collectionToken}`, {}) + await del( + `/platform/projects/${projectRef}/analytics/warehouse/collections/${collectionToken}`, + {} + ) const keysToInvalidate = analyticsKeys.warehouseCollections(projectRef) queryClient.invalidateQueries(keysToInvalidate) }, mutationKey: analyticsKeys.warehouseCollections(projectRef), + onSuccess, }) return mutation