import { ExternalLink } from 'lucide-react' import { useVercelRedirectQuery } from 'data/integrations/vercel-redirect-query' import { Alert_Shadcn_, AlertTitle_Shadcn_, Button } from 'ui' import PartnerIcon from './PartnerIcon' import { MANAGED_BY, ManagedBy } from 'lib/constants/infrastructure' interface PartnerManagedResourceProps { partner: ManagedBy resource: string cta?: { installationId?: string path?: string message?: string } } export const PARTNER_TO_NAME = { [MANAGED_BY.VERCEL_MARKETPLACE]: 'Vercel Marketplace', [MANAGED_BY.AWS_MARKETPLACE]: 'AWS Marketplace', [MANAGED_BY.SUPABASE]: 'Supabase', } as const function PartnerManagedResource({ partner, resource, cta }: PartnerManagedResourceProps) { const isManagedBySupabase = partner === MANAGED_BY.SUPABASE const ctaEnabled = cta !== undefined const { data, isLoading, isError } = useVercelRedirectQuery( { installationId: cta?.installationId, }, { enabled: ctaEnabled && !isManagedBySupabase, } ) if (isManagedBySupabase) return null const ctaUrl = (data?.url ?? '') + (cta?.path ?? '') return ( {resource} are managed by {PARTNER_TO_NAME[partner]}. {ctaEnabled && ( )} ) } export default PartnerManagedResource