/* * External dependencies */ import { createInterpolateElement } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import React from 'react'; /* * Internal dependencies */ import { Nudge } from '../../../../shared/components/upgrade-nudge'; import useAICheckout from '../../hooks/use-ai-checkout'; import useAIFeature from '../../hooks/use-ai-feature'; import { canUserPurchasePlan } from '../../lib/connection'; /** * The default upgrade prompt for the AI Assistant block, containing the Upgrade button and linking * to the checkout page or the Jetpack AI interstitial page. * * @returns {React.ReactNode} the Nudge component with the prompt. */ const DefaultUpgradePrompt = (): React.ReactNode => { const { checkoutUrl, autosaveAndRedirect, isRedirecting } = useAICheckout(); const canUpgrade = canUserPurchasePlan(); if ( ! canUpgrade ) { return ( Reach out to the site administrator to upgrade and keep using Jetpack AI.', 'jetpack' ), { br:
, strong: , } ) } visible={ true } align={ null } title={ null } context={ null } /> ); } return ( Upgrade now to keep using it.', 'jetpack' ), { br:
, strong: , } ) } goToCheckoutPage={ autosaveAndRedirect } isRedirecting={ isRedirecting } visible={ true } align={ null } title={ null } context={ null } /> ); }; /** * The VIP upgrade prompt, with a single text message recommending that the user reach * out to their VIP account team. * * @returns {React.ReactNode} the Nudge component with the prompt. */ const VIPUpgradePrompt = (): React.ReactNode => { return ( Please reach out to your VIP account team.", 'jetpack' ), { strong: , } ) } goToCheckoutPage={ null } isRedirecting={ null } visible={ true } align={ null } title={ null } context={ null } /> ); }; const UpgradePrompt = () => { const { upgradeType } = useAIFeature(); // If the user is on a VIP site, show the VIP upgrade prompt. if ( upgradeType === 'vip' ) { return VIPUpgradePrompt(); } return DefaultUpgradePrompt(); }; export default UpgradePrompt;