PluginProbe
GiveWP – Donation Plugin and Fundraising Platform / 4.17.0
GiveWP – Donation Plugin and Fundraising Platform v4.17.0
4.17.0 4.16.9 4.16.8.1 4.16.8 4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 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 All 256 releases
give / src / Campaigns / Blocks / CampaignComments / resources / edit.tsx

edit.tsx in GiveWP – Donation Plugin and Fundraising Platform 4.17.0, at src/Campaigns/Blocks/CampaignComments/resources/edit.tsx

88 lines 4.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import {InspectorControls, useBlockProps} from '@wordpress/block-editor';
2 import {BlockEditProps} from '@wordpress/blocks';
3 import {PanelBody, TextControl, ToggleControl} from '@wordpress/components';
4 import {__} from '@wordpress/i18n';
5 import CampaignComments from './shared/components/CampaignComments';
6 import useCampaign from '../../shared/hooks/useCampaign';
7 import CampaignSelector from '../../shared/components/CampaignSelector';
8 import {useEffect} from 'react';
9 import {Attributes} from './types';
10
11 export default function Edit({attributes, setAttributes, clientId}: BlockEditProps<Attributes>) {
12 const blockProps = useBlockProps();
13 const {campaign, hasResolved} = useCampaign(attributes?.campaignId);
14
15 useEffect(() => {
16 if (!attributes.blockId) {
17 setAttributes({blockId: clientId});
18 }
19 }, []);
20
21 const {title = __('Share your support', 'give'), readMoreText = __('Read More', 'give')} = attributes;
22
23 return (
24 <figure {...blockProps}>
25 <CampaignSelector
26 campaignId={attributes.campaignId}
27 handleSelect={(campaignId: number) => setAttributes({campaignId})}
28 >
29 <CampaignComments attributes={attributes} secondaryColor={campaign?.secondaryColor} />
30 </CampaignSelector>
31
32 {hasResolved && campaign?.id && (
33 <InspectorControls>
34 <PanelBody title={__('Display Elements', 'give')} initialOpen={true}>
35 <TextControl
36 label={__('Title', 'give')}
37 value={title}
38 onChange={(value: string) => setAttributes({title: value})}
39 />
40 <ToggleControl
41 label={__('Show Anonymous', 'give')}
42 checked={attributes.showAnonymous}
43 onChange={(value: boolean) => setAttributes({showAnonymous: value})}
44 />
45 <ToggleControl
46 label={__('Show Avatar', 'give')}
47 checked={attributes.showAvatar}
48 onChange={(value: boolean) => setAttributes({showAvatar: value})}
49 />
50 <ToggleControl
51 label={__('Show Date', 'give')}
52 checked={attributes.showDate}
53 onChange={(value: boolean) => setAttributes({showDate: value})}
54 />
55 <ToggleControl
56 label={__('Show Name', 'give')}
57 checked={attributes.showName}
58 onChange={(value: boolean) => setAttributes({showName: value})}
59 />
60 </PanelBody>
61 <PanelBody title={__('Comment Settings', 'give')} initialOpen={true}>
62 <TextControl
63 label={__('Comment Length', 'give')}
64 help={__(
65 'Limits the amount of characters to be displayed on donations with comments.',
66 'give'
67 )}
68 value={String(attributes.commentLength)}
69 onChange={(value: string) => setAttributes({commentLength: Number(value)})}
70 />
71 <TextControl
72 label={__('Read More Text', 'give')}
73 value={readMoreText}
74 onChange={(value: string) => setAttributes({readMoreText: value})}
75 />
76 <TextControl
77 label={__('Comments Per Page', 'give')}
78 help={__('Set the number of comments to be displayed on the first page load.', 'give')}
79 value={String(attributes.commentsPerPage)}
80 onChange={(value: string) => setAttributes({commentsPerPage: Number(value)})}
81 />
82 </PanelBody>
83 </InspectorControls>
84 )}
85 </figure>
86 );
87 }
88