import {Grid, GridCard, OverviewPanel, Spinner} from '@givewp/admin/components'; import {formatTimestamp} from '@givewp/admin/utils'; import {GatewayNotice} from '@givewp/donations/admin/components/DonationDetailsPage/Tabs/Overview/DonationSummaryGrid'; import PaymentMethodIcon from '@givewp/donations/admin/components/DonationDetailsPage/Tabs/Overview/DonationSummaryGrid/PaymentMethodIcon'; import ExternalLinkIcon from '@givewp/donations/admin/components/DonationDetailsPage/Tabs/Overview/DonationSummaryGrid/icon'; import {Subscription} from '@givewp/subscriptions/admin/components/types'; import {__} from '@wordpress/i18n'; import classnames from 'classnames'; import {ClockIcon, HourGlassIcon} from './Icons'; import DonorCard from './DonorCard'; import CampaignCard from './CampaignCard'; import styles from './styles.module.scss'; import { getSubscriptionEmbeds } from '@givewp/subscriptions/common'; /** * @since 4.10.0 removed donation * @since 4.8.0 */ type SubscriptionSummaryGridProps = { subscription: Subscription; isLoading: boolean; }; /** * @since 4.10.0 removed donation dependency * @since 4.8.0 */ export default function SubscriptionSummaryGrid({subscription, isLoading}: SubscriptionSummaryGridProps) { const { campaign, donor } = getSubscriptionEmbeds(subscription); const isOngoing = subscription?.installments === 0; const badgeLabel = isOngoing ? ( <> {__('Unlimited', 'give')} ) : ( <> {__('Limited', 'give')} ); const renewsAt = subscription?.renewsAt; const paymentMethodId = subscription?.gatewayId; const hasPaymentMethodDetails = subscription?.gateway?.id; const gatewayLabel = subscription?.gateway?.label; const gatewayLink = subscription?.gateway?.subscriptionUrl; return (

{__('Subscription Details', 'give')}

{/* Campaign Name */} {/* Next Payment */} {isLoading && } {!isLoading && ( <>
{badgeLabel}
)}
{/* Associated Donor */} {/* Gateway Info */} {isLoading ? ( ) : !hasPaymentMethodDetails ? ( ) : ( <> {gatewayLabel} {gatewayLink && ( {__('View subscription on gateway', 'give')} )} )}
); }