import { PermissionAction } from '@supabase/shared-types/out/constants' import Link from 'next/link' import { ReactNode } from 'react' import { useFlag } from 'common' import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' import { useSelectedOrganizationQuery } from 'hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from 'hooks/misc/useSelectedProject' import { Button, cn } from 'ui' import { ButtonTooltip } from './ButtonTooltip' interface UpgradeToProProps { icon?: ReactNode primaryText: string secondaryText: string addon?: 'pitr' | 'customDomain' buttonText?: string source?: string disabled?: boolean } const UpgradeToPro = ({ icon, primaryText, secondaryText, addon, buttonText, source = 'upgrade', disabled = false, }: UpgradeToProProps) => { const { data: project } = useSelectedProjectQuery() const { data: organization } = useSelectedOrganizationQuery() const plan = organization?.plan?.id const canUpdateSubscription = useCheckPermissions( PermissionAction.BILLING_WRITE, 'stripe.subscriptions' ) const projectUpdateDisabled = useFlag('disableProjectCreationAndUpdate') return (
{icon &&
{icon}
}

{primaryText}

{secondaryText}

{!canUpdateSubscription || projectUpdateDisabled ? ( {buttonText || (plan === 'free' ? 'Upgrade to Pro' : 'Enable add on')} ) : ( )}
) } export default UpgradeToPro