import { PermissionAction } from '@supabase/shared-types/out/constants' import { useMemo } from 'react' import { useParams } from 'common' import { ScaffoldContainer, ScaffoldSection, ScaffoldSectionContent, ScaffoldSectionDetail, } from 'components/layouts/Scaffold' import NoPermission from 'components/ui/NoPermission' import UpgradeToPro from 'components/ui/UpgradeToPro' import { useGitHubConnectionsQuery } from 'data/integrations/github-connections-query' import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { BASE_PATH, IS_PLATFORM } from 'lib/constants' import { cn } from 'ui' import GitHubIntegrationConnectionForm from './GitHubIntegrationConnectionForm' const IntegrationImageHandler = ({ title }: { title: 'vercel' | 'github' }) => { return ( {`${title} ) } const GitHubSection = () => { const { ref: projectRef } = useParams() const { data: organization } = useSelectedOrganizationQuery() const canReadGitHubConnection = useCheckPermissions( PermissionAction.READ, 'integrations.github_connections' ) const isProPlanAndUp = organization?.plan?.id !== 'free' const promptProPlanUpgrade = IS_PLATFORM && !isProPlanAndUp const { data: connections } = useGitHubConnectionsQuery( { organizationId: organization?.id }, { enabled: !!projectRef && !!organization?.id } ) const existingConnection = useMemo( () => connections?.find((c) => c.project.ref === projectRef), [connections, projectRef] ) const GitHubTitle = `GitHub Integration` if (!canReadGitHubConnection) { return (

Connect any of your GitHub repositories to a project.

) } return (

Connect any of your GitHub repositories to a project.

How does the GitHub integration work?

Connecting to GitHub allows you to sync preview branches with a chosen GitHub branch, keep your production branch in sync, and automatically create preview branches for every pull request.

{promptProPlanUpgrade && (
)}
) } export default GitHubSection