PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.4.3
GiveWP – Donation Plugin and Fundraising Platform v2.4.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 / blocks / components / select-form / index.js
give / blocks / components / select-form Last commit date
index.js 7 years ago
index.js
103 lines
1 /**
2 * External dependencies
3 */
4 import { isUndefined } from 'lodash';
5
6 /**
7 * WordPress dependencies
8 */
9 const { __ } = wp.i18n;
10 const { withSelect } = wp.data;
11 const { SelectControl, Button, Placeholder, Spinner } = wp.components;
12
13 /**
14 * Internal dependencies
15 */
16 import { getSiteUrl } from '../../utils';
17 import GiveBlankSlate from '../blank-slate';
18 import NoForms from '../no-form';
19
20 /**
21 * Render form select UI
22 */
23 const giveFormOptionsDefault = { value: '0', label: __( '-- Select Form --' ) };
24
25 const SelectForm = ( { forms, attributes, setAttributes } ) => {
26 //Attributes
27 const { prevId } = attributes;
28
29 // Event(s)
30 const getFormOptions = () => {
31 // Add API Data To Select Options
32
33 let formOptions = [];
34
35 if ( ! isUndefined( forms ) ) {
36 formOptions = forms.map(
37 ( { id, title: { rendered: title } } ) => {
38 return {
39 value: id,
40 label: title === '' ? `${ id } : ${ __( 'No form title' ) }` : title,
41 };
42 }
43 );
44 }
45 // Add Default option
46 formOptions.unshift( giveFormOptionsDefault );
47
48 return formOptions;
49 };
50
51 const setFormIdTo = id => {
52 setAttributes( { id: Number( id ) } );
53 };
54
55 const resetFormIdTo = () => {
56 setAttributes( { id: Number( prevId ) } );
57 setAttributes( { prevId: undefined } );
58 };
59
60 // Render Component UI
61 let componentUI;
62
63 if ( ! forms ) {
64 componentUI = <Placeholder><Spinner/></Placeholder>;
65 } else if ( forms && forms.length === 0 ) {
66 componentUI = <NoForms />;
67 } else {
68 componentUI = (
69 <GiveBlankSlate title={ __( 'Give Donation form' ) }>
70 <SelectControl
71 className="give-blank-slate__select"
72 options={ getFormOptions() }
73 onChange={ setFormIdTo }
74 />
75
76 <Button isPrimary
77 isLarge href={ `${ getSiteUrl() }/wp-admin/post-new.php?post_type=give_forms` }>
78 { __( 'Add New Form' ) }
79 </Button>&nbsp;&nbsp;
80
81 {
82 prevId &&
83 <Button isLarge
84 onClick={ resetFormIdTo }>
85 { __( 'Cancel' ) }
86 </Button>
87 }
88 </GiveBlankSlate>
89 );
90 }
91
92 return componentUI;
93 };
94
95 /**
96 * Export with forms data
97 */
98 export default withSelect( ( select ) => {
99 return {
100 forms: select( 'core' ).getEntityRecords( 'postType', 'give_forms' ),
101 };
102 } )( SelectForm );
103