PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.7.0
GiveWP – Donation Plugin and Fundraising Platform v4.7.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 / DonationForms / resources / receipt / DonationConfirmationReceiptApp.tsx
give / src / DonationForms / resources / receipt Last commit date
DonationConfirmationReceiptApp.tsx 1 year ago
DonationConfirmationReceiptApp.tsx
87 lines
1 import {createRoot, render} from '@wordpress/element';
2 import {withTemplateWrapper} from '@givewp/forms/app/templates';
3 import amountFormatter from '@givewp/forms/app/utilities/amountFormatter';
4 import {ReceiptDetail} from '@givewp/forms/types';
5
6 const formTemplates = window.givewp.form.templates;
7 const DonationReceiptTemplate = withTemplateWrapper(formTemplates.layouts.receipt);
8
9 /**
10 * Get data from the server
11 */
12 const {receipt} = window.givewpDonationConfirmationReceiptExports;
13
14 /**
15 * This function is used to format the amount value. It also handles cased when there are additional details within the string. For example "$25.00 / month"
16 *
17 * @since 3.0.0
18 */
19 const getAmountFormatted = (value) => {
20 const amount = parseFloat(value);
21 const amountFormatted = amountFormatter(receipt.settings.currency, {}).format(amount);
22 const additionalDetails = value.replace(/^[\d|.,]+/, '').trim();
23
24 if (!additionalDetails) {
25 return amountFormatted;
26 } else {
27 return `${amountFormatted} ${additionalDetails}`;
28 }
29 };
30
31 /**
32 * Return readable value
33 *
34 * @since 3.0.0
35 */
36 const getDetailValue = (value) => {
37 if (typeof value === 'string') {
38 return value;
39 }
40
41 if (value?.amount) {
42 return getAmountFormatted(value.amount);
43 }
44
45 return JSON.stringify(value);
46 };
47
48 /**
49 * Prepare detail values before render
50 *
51 * @since 3.0.0
52 */
53 const prepareDetails = (details: ReceiptDetail[]) => {
54 return details?.map(({label, value}) => ({
55 label,
56 value: getDetailValue(value),
57 }));
58 };
59
60 /**
61 *
62 * @since 3.0.0
63 */
64 function DonationConfirmationReceiptApp() {
65 return (
66 <DonationReceiptTemplate
67 heading={receipt.settings.heading}
68 description={receipt.settings.description}
69 donorDashboardUrl={receipt.settings.donorDashboardUrl}
70 pdfReceiptLink={receipt.settings.pdfReceiptLink}
71 donorDetails={receipt.donorDetails}
72 donationDetails={prepareDetails(receipt.donationDetails)}
73 subscriptionDetails={prepareDetails(receipt.subscriptionDetails)}
74 eventTicketsDetails={prepareDetails(receipt.eventTicketsDetails)}
75 additionalDetails={prepareDetails(receipt.additionalDetails)}
76 />
77 );
78 }
79
80 const root = document.getElementById('root-givewp-donation-confirmation-receipt');
81
82 createRoot(root).render(<DonationConfirmationReceiptApp />);
83
84 root.scrollIntoView({
85 behavior: 'smooth',
86 });
87