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')}
)}
>
)}
);
}