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 / CampaignTitle / edit.tsx
give / src / Campaigns / Blocks / CampaignTitle Last commit date
block.json 1 year ago edit.tsx 1 year ago editor.scss 1 year ago index.ts 1 year ago index.tsx 1 year ago render.php 1 year ago
edit.tsx
81 lines
1 import {
2 AlignmentControl,
3 BlockControls,
4 HeadingLevelDropdown,
5 InspectorControls,
6 useBlockProps,
7 } from '@wordpress/block-editor';
8 import {BlockEditProps} from '@wordpress/blocks';
9 import {BaseControl, Icon, PanelBody, TextareaControl} from '@wordpress/components';
10 import ServerSideRender from '@wordpress/server-side-render';
11 import CampaignSelector from '../shared/components/CampaignSelector';
12 import useCampaign from '../shared/hooks/useCampaign';
13 import {__} from '@wordpress/i18n';
14 import {getCampaignOptionsWindowData} from '@givewp/campaigns/utils';
15 import {external} from '@wordpress/icons';
16
17 import './editor.scss';
18
19 export default function Edit({
20 attributes,
21 setAttributes,
22 }: BlockEditProps<{
23 campaignId: number;
24 headingLevel: string;
25 textAlign: string;
26 }>) {
27 const blockProps = useBlockProps();
28 const {campaign, hasResolved} = useCampaign(attributes.campaignId);
29 const campaignWindowData = getCampaignOptionsWindowData();
30
31 const editCampaignUrl = `${campaignWindowData.campaignsAdminUrl}&id=${attributes.campaignId}&tab=settings`;
32
33 return (
34 <div {...blockProps}>
35 <CampaignSelector
36 campaignId={attributes.campaignId}
37 handleSelect={(campaignId: number) => setAttributes({campaignId})}
38 >
39 <ServerSideRender block="givewp/campaign-title" attributes={attributes} />
40 </CampaignSelector>
41
42 {hasResolved && campaign && (
43 <InspectorControls>
44 <PanelBody title="Settings" initialOpen={true}>
45 <BaseControl label="Title" id="givewp-campaign-title-block__title-field">
46 <TextareaControl
47 value={campaign.title}
48 readOnly={true}
49 onChange={() => null}
50 help={
51 <a
52 href={editCampaignUrl}
53 target="_blank"
54 rel="noopener noreferrer"
55 className="givewp-campaign-title-block__edit-campaign-link"
56 aria-label={__('Edit campaign settings in a new tab', 'give')}
57 >
58 {__('Edit campaign title', 'give')}
59 <Icon icon={external} />
60 </a>
61 }
62 />
63 </BaseControl>
64 </PanelBody>
65 </InspectorControls>
66 )}
67
68 <BlockControls>
69 <HeadingLevelDropdown
70 value={attributes.headingLevel}
71 onChange={(newLevel: string) => setAttributes({headingLevel: newLevel})}
72 />
73 <AlignmentControl
74 value={attributes.textAlign}
75 onChange={(nextAlign: string) => setAttributes({textAlign: nextAlign})}
76 />
77 </BlockControls>
78 </div>
79 );
80 }
81