PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.3
GiveWP – Donation Plugin and Fundraising Platform v4.16.3
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 / Campaigns / Blocks / CampaignForm / resources / components / BlockPreview.tsx
give / src / Campaigns / Blocks / CampaignForm / resources / components Last commit date
BlockInspectorControls.tsx 1 year ago BlockPreview.tsx 1 year ago
BlockPreview.tsx
87 lines
1 import { useSelect } from '@wordpress/data';
2 import { __ } from '@wordpress/i18n';
3 import IframeResizer from 'iframe-resizer-react';
4 import ServerSideRender from '@wordpress/server-side-render';
5 import ModalForm from '../../../shared/components/ModalForm';
6 import '../../../shared/components/EntitySelector/styles/index.scss';
7
8 /**
9 * @unreleasaed
10 */
11 export interface BlockPreviewProps {
12 formId: number;
13 clientId: string;
14 displayStyle: 'onpage' | 'modal' | 'newTab' | 'reveal';
15 continueButtonTitle: string;
16 link: string;
17 isLegacyForm: boolean;
18 attributes: any;
19 isSelected: boolean;
20 className: string;
21 }
22
23 /**
24 * @unreleasaed
25 */
26 export default function BlockPreview({
27 clientId,
28 formId,
29 displayStyle,
30 continueButtonTitle,
31 link,
32 isLegacyForm,
33 attributes,
34 isSelected,
35 className,
36 }: BlockPreviewProps) {
37 // @ts-ignore
38 const selectedBlock = useSelect((select) => select('core/block-editor').getSelectedBlock(), []);
39 const isBlockSelected = selectedBlock?.clientId === clientId;
40
41 const iframePointerEvents = isBlockSelected ? 'auto' : 'none';
42 const isModalDisplay = displayStyle === 'modal' || displayStyle === 'reveal';
43 const isNewTabDisplay = displayStyle === 'newTab';
44
45 if (isLegacyForm) {
46 return (
47 <div className={`${className}${isSelected ? ' isSelected' : ''}`}>
48 <ServerSideRender block="givewp/campaign-form" attributes={attributes} />
49 </div>
50 );
51 }
52
53 if (isNewTabDisplay) {
54 return (
55 <a className="givewp-donation-form-link" href={link} target="_blank" rel="noopener noreferrer">
56 {continueButtonTitle}
57 </a>
58 );
59 }
60
61 if (isModalDisplay) {
62 return (
63 <ModalForm
64 dataSrc={`/?givewp-route=donation-form-view&form-id=${formId}`}
65 embedId=""
66 buttonText={continueButtonTitle}
67 isFormRedirect={false}
68 formViewUrl=""
69 />
70 );
71 }
72
73 return (
74 <IframeResizer
75 title={__('Donation Form', 'give')}
76 src={`/?givewp-route=donation-form-view&form-id=${formId}`}
77 checkOrigin={false}
78 style={{
79 width: '1px',
80 minWidth: '100%',
81 border: '0',
82 pointerEvents: iframePointerEvents,
83 }}
84 />
85 );
86 }
87