import { useParams } from 'common' import { useState } from 'react' import { toast } from 'sonner' import { AlertDialog, AlertDialogAction, AlertDialogBody, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from 'ui' import { Admonition } from 'ui-patterns/Admonition' import { useDeleteReplicationTenantMutation } from '@/data/replication/delete-tenant-mutation' interface DisablePipelinesDialogProps { open: boolean setOpen: (value: boolean) => void } export const DisablePipelinesDialog = ({ open, setOpen }: DisablePipelinesDialogProps) => { const { ref: projectRef } = useParams() const [error, setError] = useState(null) const { mutateAsync: deleteReplicationTenant, isPending: isSubmitting } = useDeleteReplicationTenantMutation({ onSuccess: () => { toast.success('Pipelines has been disabled') setOpen(false) }, onError: () => {}, }) const onConfirm = async () => { setError(null) try { if (!projectRef) throw new Error('Project ref is required') await deleteReplicationTenant({ projectRef }) } catch (error) { setError( error instanceof Error ? error.message : 'An unknown error occurred while disabling Pipelines' ) throw error } } return ( !isSubmitting && setOpen(open)}> Disable Pipelines This will remove the etl schema and all Pipelines-managed resources from your database. Data already written to destination systems is not deleted. Read replicas are not affected. {error && ( )} Cancel Disable ) }