import { Badge, Card, CardContent, cn, Separator } from 'ui'
import { useIsMarketplaceEnabled } from '../../App/FeaturePreview/FeaturePreviewContext'
import { MissingExtensionAlert } from './MissingExtensionAlert'
import { useIntegrationDetail } from '@/components/interfaces/Integrations/Landing/useIntegrationDetail'
import { useDatabaseExtensionsQuery } from '@/data/database-extensions/database-extensions-query'
import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject'
export const RequiredExtensionsSection = ({
hide = false,
hideSeparator = false,
className,
}: {
hide?: boolean
hideSeparator?: boolean
className?: string
}) => {
const { integration } = useIntegrationDetail()
const { data: project } = useSelectedProjectQuery()
const { data: extensions } = useDatabaseExtensionsQuery({
projectRef: project?.ref,
connectionString: project?.connectionString,
})
const isMarketplaceEnabled = useIsMarketplaceEnabled()
const requiredExtensions = integration?.requiredExtensions ?? []
if (hide || requiredExtensions.length === 0) return null
const installableExtensions = (extensions ?? []).filter((ext) =>
requiredExtensions.includes(ext.name)
)
const hasMissingExtensions = installableExtensions.length !== requiredExtensions.length
return (
<>
{!hideSeparator &&
{requiredExtension}