PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.0
GiveWP – Donation Plugin and Fundraising Platform v4.16.0
4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Subscriptions / resources / admin / components / SubscriptionDetailsPage / Tabs / Overview / SubscriptionStats / index.tsx
give / src / Subscriptions / resources / admin / components / SubscriptionDetailsPage / Tabs / Overview / SubscriptionStats Last commit date
index.tsx 10 months ago styles.module.scss 10 months ago
index.tsx
55 lines
1 import { StatWidget } from '@givewp/admin/components';
2 import { __ } from '@wordpress/i18n';
3 import { amountFormatter } from '@givewp/admin/utils';
4 import { Donation } from '@givewp/donations/admin/components/types';
5 import styles from './styles.module.scss';
6
7 /**
8 * @since 4.8.0
9 */
10 type SubscriptionStatsProps = {
11 donations: Donation[];
12 currency: string;
13 totalInstallments: number;
14 loading: boolean;
15 }
16
17
18 /**
19 * @since 4.8.0
20 */
21 export const getCompletedDonations = (donations: Donation[]) => {
22 return donations?.filter(donation => ['publish', 'give_subscription'].includes(donation.status));
23 };
24
25 /**
26 * @since 4.8.0
27 */
28 export default function SubscriptionStats({ donations, currency, totalInstallments, loading }: SubscriptionStatsProps) {
29 const ongoingInstallments = totalInstallments === 0;
30 const completedDonations = getCompletedDonations(donations);
31 const paymentsCompleted = completedDonations?.length;
32 const totalContributions = completedDonations?.reduce((acc, donation) => acc + Number(donation.amount.value), 0);
33
34 const paymentProgress = (
35 <div className={styles.paymentProgress}>
36 {paymentsCompleted} / <span>{ongoingInstallments ? '\u221E' : totalInstallments}</span>
37 </div>
38 );
39
40 return (
41 <div className={styles.container}>
42 <StatWidget
43 label={__('Total contribution so far', 'give')}
44 value={amountFormatter(currency).format(totalContributions)}
45 loading={loading}
46 />
47 <StatWidget
48 label={__('Payments completed', 'give')}
49 value={paymentProgress}
50 loading={loading}
51 />
52 </div>
53 );
54 }
55