import { IS_PLATFORM } from 'common' import { ChevronRight } from 'lucide-react' import { useRouter } from 'next/router' import { parseAsBoolean, parseAsString, useQueryState } from 'nuqs' import { useEffect, useRef } from 'react' import { Card, CardContent, cn } from 'ui' import { useAvailableConnectModes } from '../ConnectSheet/useAvailableConnectModes' import { CONNECT_ACTIONS } from './ConnectSection.config' import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject' import { BASE_PATH, PROJECT_STATUS } from '@/lib/constants' import { useTrack } from '@/lib/telemetry/track' import { useAppStateSnapshot } from '@/state/app-state' export const ConnectSection = () => { const router = useRouter() const { data: selectedProject } = useSelectedProjectQuery() const { setConnectSheetSource } = useAppStateSnapshot() const track = useTrack() const [, setShowConnect] = useQueryState('showConnect', parseAsBoolean.withDefault(false)) const [, setConnectTab] = useQueryState('connectTab', parseAsString) const isActiveHealthy = selectedProject?.status === PROJECT_STATUS.ACTIVE_HEALTHY const availableModeIds = useAvailableConnectModes() const availableActions = CONNECT_ACTIONS.filter((action) => action.mode ? availableModeIds.includes(action.mode) : true ) const hasTrackedExposure = useRef(false) useEffect(() => { if (!IS_PLATFORM) return if (hasTrackedExposure.current) return hasTrackedExposure.current = true track('home_connect_section_exposed') }, [track]) const handleActionClick = (action: (typeof CONNECT_ACTIONS)[number]) => { track('home_connect_action_clicked', { mode: action.id }) if (action.mode) { setConnectTab(action.mode) setConnectSheetSource('connect_section') setShowConnect(true) return } if (action.href && selectedProject?.ref) { router.push(action.href.replace('[ref]', selectedProject.ref)) } } return (

Get connected

{availableActions.map((action) => ( ))}
) }