import { useParams } from 'common' import { useState } from 'react' import { toast } from 'sonner' import { Button, cn, Dialog, DialogContent, DialogFooter, DialogHeader, DialogSection, DialogSectionSeparator, DialogTitle, DialogTrigger, } from 'ui' import { Admonition } from 'ui-patterns/admonition' import { DestinationType } from './DestinationPanel/DestinationPanel.types' import { DocsButton } from '@/components/ui/DocsButton' import { UpgradePlanButton } from '@/components/ui/UpgradePlanButton' import { useCreateTenantSourceMutation } from '@/data/replication/create-tenant-source-mutation' import { DOCS_URL } from '@/lib/constants' const EnablePipelinesModal = () => { const { ref: projectRef } = useParams() const [open, setOpen] = useState(false) const { mutate: createTenantSource, isPending: creatingTenantSource } = useCreateTenantSourceMutation({ onSuccess: () => { toast.success('Pipelines has been successfully enabled!') setOpen(false) }, onError: (error) => { toast.error(`Failed to enable Pipelines: ${error.message}`) }, }) const onEnablePipelines = async () => { if (!projectRef) return console.error('Project ref is required') createTenantSource({ projectRef }) } return ( Enable Pipelines

Alpha features can be unstable and may introduce breaking changes while we evaluate the product direction, refine the feature set, and incorporate customer feedback.

Pricing is not finalized. You can enable Pipelines now; we'll announce pricing later and notify you before any charges apply.

) } export const EnablePipelinesCallout = ({ type, className, hasAccess, }: { type?: DestinationType | null className?: string hasAccess: boolean }) => { return (

Enable Pipelines

Pipelines creates managed replication pipelines that stream database changes to destination systems.{' '} {hasAccess ? 'Enable Pipelines for your project' : 'Upgrade to the Pro plan'} to stream database changes to {type ?? 'data warehouses and analytics platforms'}.

{hasAccess ? ( ) : ( )}
) }