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 / edit.tsx
give / src / Campaigns / Blocks / CampaignForm / resources Last commit date
components 1 year ago types 1 year ago Icon.tsx 1 year ago app.tsx 1 year ago edit.tsx 1 year ago index.tsx 1 year ago styles.scss 1 year ago
edit.tsx
92 lines
1 import {useEffect} from 'react';
2 import {useBlockProps} from '@wordpress/block-editor';
3 import {BlockEditProps} from '@wordpress/blocks';
4 import {__} from '@wordpress/i18n';
5 import BlockInspectorControls from './components/BlockInspectorControls';
6 import type {BlockPreviewProps} from './components/BlockPreview';
7 import BlockPreview from './components/BlockPreview';
8 import useFormOptions from '../../shared/hooks/useFormOptions';
9 import CampaignSelector from '../../shared/components/CampaignSelector';
10 import '../../shared/components/EntitySelector/styles/index.scss';
11
12 import './styles.scss';
13
14 /**
15 * @since 4.3.0
16 *
17 * @see 'class-give-block-donation-form.php'
18 */
19 type CampaignFormBlockAttributes = {
20 campaignId: number;
21 id: number;
22 prevId: number;
23 blockId: string;
24 displayStyle: BlockPreviewProps['displayStyle'];
25 continueButtonTitle: string;
26 showTitle: boolean;
27 showGoal: boolean;
28 showContent: boolean;
29 contentDisplay: string;
30 useDefaultForm: boolean;
31 };
32
33 /**
34 * @since 4.3.0
35 */
36 export default function Edit({attributes, isSelected, setAttributes, className, clientId}: BlockEditProps<any>) {
37 const {
38 id,
39 blockId,
40 displayStyle,
41 continueButtonTitle = __('Donate now', 'give'),
42 } = attributes as CampaignFormBlockAttributes;
43 const {formOptions, isResolving} = useFormOptions(attributes?.campaignId);
44
45 useEffect(() => {
46 if (!blockId) {
47 setAttributes({blockId: clientId});
48 }
49
50 if (!isLegacyForm && displayStyle === 'reveal') {
51 setAttributes({displayStyle: 'modal'});
52 }
53 }, []);
54
55 const [isLegacyForm, isLegacyTemplate, link] = (() => {
56 const form = formOptions.find((form) => form.value === id);
57
58 return [form?.isLegacyForm, form?.isLegacyTemplate, form?.link];
59 })();
60
61 return (
62 <div {...useBlockProps()}>
63 <CampaignSelector
64 campaignId={attributes.campaignId}
65 handleSelect={(campaignId: number) => setAttributes({campaignId: Number(campaignId)})}
66 >
67 {id && (
68 <BlockPreview
69 clientId={clientId}
70 formId={id}
71 displayStyle={displayStyle}
72 continueButtonTitle={continueButtonTitle}
73 link={link}
74 isLegacyForm={isLegacyForm}
75 attributes={attributes}
76 isSelected={isSelected}
77 className={className}
78 />
79 )}
80 <BlockInspectorControls
81 attributes={attributes}
82 setAttributes={setAttributes}
83 entityOptions={formOptions}
84 isResolving={isResolving}
85 isLegacyTemplate={isLegacyTemplate}
86 isLegacyForm={isLegacyForm}
87 />
88 </CampaignSelector>
89 </div>
90 );
91 }
92