PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.1.2
GiveWP – Donation Plugin and Fundraising Platform v3.1.2
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 / Blocks / DonationFormBlock / resources / editor / Edit.tsx
give / src / DonationForms / Blocks / DonationFormBlock / resources / editor Last commit date
components 2 years ago hooks 2 years ago images 2 years ago styles 2 years ago types 2 years ago Edit.tsx 2 years ago
Edit.tsx
75 lines
1 import {useEffect, useState} from 'react';
2 import {useBlockProps} from '@wordpress/block-editor';
3 import {BlockEditProps} from '@wordpress/blocks';
4 import ServerSideRender from '@wordpress/server-side-render';
5 import DonationFormSelector from './components/DonationFormSelector';
6 import useFormOptions from './hooks/useFormOptions';
7 import DonationFormBlockControls from './components/DonationFormBlockControls';
8 import DonationFormBlockPreview from './components/DonationFormBlockPreview';
9
10 import './styles/index.scss';
11
12 /**
13 * @unreleased updated to handle v2 forms.
14 * @since 3.0.0
15 */
16 export default function Edit({attributes, isSelected, setAttributes, className, clientId}: BlockEditProps<any>) {
17 const {id, blockId, displayStyle, continueButtonTitle} = attributes;
18 const {formOptions, isResolving} = useFormOptions();
19 const [showPreview, setShowPreview] = useState<boolean>(!!id);
20
21 const handleSelect = (id) => {
22 setShowPreview(true);
23 setAttributes({id});
24 };
25
26 useEffect(() => {
27 if (!blockId) {
28 setAttributes({blockId: clientId});
29 }
30
31 if (!isLegacyForm && displayStyle === 'reveal') {
32 setAttributes({displayStyle: 'modal'});
33 }
34 }, []);
35
36 const [isLegacyForm, isLegacyTemplate, link] = (() => {
37 const form = formOptions.find((form) => form.value == id);
38
39 return [form?.isLegacyForm, form?.isLegacyTemplate, form?.link];
40 })();
41
42 return (
43 <div {...useBlockProps()}>
44 {id && showPreview ? (
45 <>
46 <DonationFormBlockControls
47 attributes={attributes}
48 setAttributes={setAttributes}
49 formOptions={formOptions}
50 isResolving={isResolving}
51 isLegacyTemplate={isLegacyTemplate}
52 isLegacyForm={isLegacyForm}
53 />
54
55 {isLegacyForm ? (
56 <div className={!!isSelected ? `${className} isSelected` : className}>
57 <ServerSideRender block="give/donation-form" attributes={attributes} />
58 </div>
59 ) : (
60 <DonationFormBlockPreview
61 clientId={clientId}
62 formId={id}
63 formFormat={displayStyle}
64 openFormButton={continueButtonTitle}
65 link={link}
66 />
67 )}
68 </>
69 ) : (
70 <DonationFormSelector formOptions={formOptions} isResolving={isResolving} handleSelect={handleSelect} />
71 )}
72 </div>
73 );
74 }
75