import { IS_PLATFORM } from 'common' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { BASE_PATH, PROJECT_STATUS } from 'lib/constants' import { useTrack } from 'lib/telemetry/track' import { parseAsBoolean, parseAsString, useQueryState } from 'nuqs' import { useEffect, useRef } from 'react' import { Card, CardContent, cn } from 'ui' import type { ConnectMode } from '../ConnectSheet/Connect.types' import { useAvailableConnectModes } from '../ConnectSheet/useAvailableConnectModes' import { useAppStateSnapshot } from '@/state/app-state' import { CONNECT_ACTIONS, type ConnectSectionVariant } from './ConnectSection.config' interface ConnectSectionProps { variant: ConnectSectionVariant } export const ConnectSection = ({ variant }: ConnectSectionProps) => { 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) => availableModeIds.includes(action.mode) ) const hasTrackedExposure = useRef(false) useEffect(() => { if (!IS_PLATFORM) return if (hasTrackedExposure.current) return hasTrackedExposure.current = true track('home_connect_section_exposed', { variant }) }, [variant, track]) const handleConnectClick = (mode: ConnectMode) => { track('home_connect_action_clicked', { mode }) setConnectTab(mode) setConnectSheetSource('connect_section') setShowConnect(true) } return (

Get connected

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