import { toast } from 'sonner' import { useVaultSecretDeleteMutation } from 'data/vault/vault-secret-delete-mutation' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import type { VaultSecret } from 'types' import { Modal } from 'ui' interface DeleteSecretModalProps { selectedSecret: VaultSecret | undefined onClose: () => void } const DeleteSecretModal = ({ selectedSecret, onClose }: DeleteSecretModalProps) => { const { data: project } = useSelectedProjectQuery() const { mutate: deleteSecret, isLoading: isDeleting } = useVaultSecretDeleteMutation({ onSuccess: () => { toast.success(`Successfully deleted secret ${selectedSecret?.name}`) onClose() }, onError: (error) => { toast.error(`Failed to delete secret: ${error.message}`) }, }) const onConfirmDeleteSecret = async () => { if (!project) return console.error('Project is required') if (!selectedSecret) return deleteSecret({ projectRef: project.ref, connectionString: project?.connectionString, id: selectedSecret.id, }) } return (

The following secret will be permanently removed and cannot be recovered. Are you sure?

{selectedSecret?.description}

ID: {selectedSecret?.id}

) } export default DeleteSecretModal