PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.8.0
GiveWP – Donation Plugin and Fundraising Platform v4.8.0
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 / SubscriptionAnnualProjection / utils.ts
give / src / Subscriptions / resources / admin / components / SubscriptionDetailsPage / Tabs / Overview / SubscriptionAnnualProjection Last commit date
index.tsx 10 months ago styles.module.scss 10 months ago utils.ts 10 months ago
utils.ts
83 lines
1 import { Donation } from '@givewp/donations/admin/components/types';
2 import { ApexOptions } from 'apexcharts';
3 import { getCompletedDonations } from '../SubscriptionStats';
4
5 /**
6 * Get completed donations for the current year
7 *
8 * @since 4.8.0
9 */
10 export const getCurrentYearCompletedDonations = (donations: Donation[]): Donation[] => {
11 const completedDonations = getCompletedDonations(donations);
12 const currentYear = new Date().getFullYear();
13
14 return completedDonations?.filter(donation => {
15 const donationDate = new Date(donation.createdAt.date);
16 return donationDate.getFullYear() === currentYear;
17 });
18 };
19
20 /**
21 * Calculate total contributions from completed donations
22 *
23 * @since 4.8.0
24 */
25 export const calculateTotalContributions = (completedDonations: Donation[]): number => {
26 if (!completedDonations) {
27 return 0;
28 }
29
30 return completedDonations?.reduce((acc, donation) => acc + Number(donation.amount.value), 0);
31 };
32
33 /**
34 * Calculate progress percentage based on completed vs projected amounts
35 *
36 * @since 4.8.0
37 */
38 export const calculateProgressPercentage = (completedAmount: number, projectedAmount: number): number => {
39 const progress = Math.ceil((completedAmount / projectedAmount) * 100);
40
41 return Math.min(progress, 100);
42 };
43
44 /**
45 * @since 4.8.0
46 */
47 export const chartOptions = (label: string): ApexOptions => {
48 return {
49 chart: {
50 height: 1024,
51 type: 'radialBar',
52 },
53 plotOptions: {
54 radialBar: {
55 hollow: {
56 margin: 15,
57 size: '60%',
58 },
59 dataLabels: {
60 /**
61 * The "name" is the top label, here it is the value/amount
62 * The "value" is the percent progress
63 */
64 name: {
65 offsetY: 20,
66 show: true,
67 color: '#4B5563',
68 fontSize: '12px',
69 },
70 value: {
71 offsetY: -20,
72 color: '#060C1A',
73 fontSize: '24px',
74 show: true,
75 },
76 },
77 },
78 },
79 colors: ['#459948'],
80 labels: [label],
81 };
82 };
83