import { AlertDialog, AlertDialogDescription, AlertDialogLabel } from '@reach/alert-dialog' import { FunctionComponent, useCallback, useRef } from 'react' import Icon from '@/Components/Icon/Icon' import { WebApplication } from '@/Application/Application' import { openSubscriptionDashboard } from '@/Utils/ManageSubscription' import { PremiumFeatureIconClass, PremiumFeatureIconName } from '../Icon/PremiumFeatureIcon' import { loadPurchaseFlowUrl } from '../PurchaseFlow/PurchaseFlowFunctions' type Props = { application: WebApplication featureName: string hasSubscription: boolean hasAccount: boolean onClose: () => void showModal: boolean } const PremiumFeaturesModal: FunctionComponent = ({ application, featureName, hasSubscription, hasAccount, onClose, showModal, }) => { const plansButtonRef = useRef(null) const handleClick = useCallback(() => { if (hasSubscription) { openSubscriptionDashboard(application) } else if (hasAccount) { void loadPurchaseFlowUrl(application) } else if (window.plansUrl) { window.location.assign(window.plansUrl) } }, [application, hasSubscription, hasAccount]) return showModal ? (
Enable Advanced Features
To take advantage of {featureName} and other advanced features, upgrade your current plan.
) : null } export default PremiumFeaturesModal