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