PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.7.0
GiveWP – Donation Plugin and Fundraising Platform v4.7.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 / DonationForms / Blocks / DonationFormBlock / resources / app / index.tsx
give / src / DonationForms / Blocks / DonationFormBlock / resources / app Last commit date
index.tsx 10 months ago renderDonationForm.tsx 10 months ago
index.tsx
103 lines
1 import {__} from '@wordpress/i18n';
2 import IframeResizer from 'iframe-resizer-react';
3 import isRouteInlineRedirect from '@givewp/forms/app/utilities/isRouteInlineRedirect';
4 import ModalForm from '@givewp/src/Campaigns/Blocks/shared/components/ModalForm';
5 import '../editor/styles/index.scss';
6 import renderDonationForm from './renderDonationForm';
7
8 /**
9 * @since 3.2.1 Revert the display style value of "fullForm" to "onpage".
10 * @since 3.1.2
11 */
12 type DonationFormBlockAppProps = {
13 formFormat: 'onpage' | 'newTab' | 'modal' | string;
14 dataSrc: string;
15 embedId: string;
16 openFormButton: string;
17 formUrl: string;
18 formViewUrl: string;
19 };
20
21 /**
22 * @since 3.4.0
23 */
24 const inlineRedirectRoutes = ['donation-confirmation-receipt-view'];
25
26 /**
27 * @since 3.4.0
28 */
29 const isRedirect = (url: string) => {
30 const redirectUrl = new URL(url);
31 const redirectUrlParams = new URLSearchParams(redirectUrl.search);
32
33 return isRouteInlineRedirect(redirectUrlParams, inlineRedirectRoutes);
34 };
35
36 /**
37 * @since 4.3.0 replace ModalForm with Campaigns ModalForm.
38 * @since 3.4.0 add logic for inline redirects.
39 * @since 3.2.0 replace form format reveal with new tab.
40 * @since 3.0.0
41 */
42 export default function DonationFormBlockApp({
43 formFormat,
44 dataSrc,
45 embedId,
46 openFormButton,
47 formUrl,
48 formViewUrl,
49 }: DonationFormBlockAppProps) {
50 const isFormRedirect = isRedirect(dataSrc);
51
52 if (formFormat === 'newTab') {
53 return (
54 <a
55 className={'givewp-donation-form-link'}
56 href={formUrl}
57 target={'_blank'}
58 rel={'noopener noreferrer'}
59 aria-label={`${openFormButton} ${__('Opens in a new tab', 'give')}`}
60 >
61 {openFormButton}
62 </a>
63 );
64 }
65
66 if (formFormat === 'modal' || formFormat === 'reveal') {
67 return (
68 <ModalForm
69 buttonText={openFormButton}
70 dataSrc={dataSrc}
71 embedId={embedId}
72 isFormRedirect={isFormRedirect}
73 formViewUrl={formViewUrl}
74 />
75 );
76 }
77
78 return (
79 <IframeResizer
80 title={__('Donation Form', 'give')}
81 id={embedId}
82 src={dataSrc}
83 checkOrigin={false}
84 heightCalculationMethod={'taggedElement'}
85 style={{
86 width: '1px',
87 minWidth: '100%',
88 border: '0',
89 }}
90 />
91 );
92 }
93
94 const roots = document.querySelectorAll('.root-data-givewp-embed');
95
96 /**
97 * @since 4.7.0 update to use renderDonationForm
98 * @since 3.22.0 Add locale support
99 */
100 roots?.forEach((root) => {
101 renderDonationForm(root);
102 });
103