PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.2.5
GiveWP – Donation Plugin and Fundraising Platform v2.2.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 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 / donation-form / edit / block.js
give / blocks / donation-form / edit Last commit date
form 7 years ago scss 8 years ago block.js 7 years ago controls.js 7 years ago inspector.js 7 years ago
block.js
98 lines
1 /**
2 * External dependencies
3 */
4 import { isEmpty, pickBy, isUndefined } from 'lodash';
5 import { stringify } from 'querystringify';
6
7 /**
8 * WordPress dependencies
9 */
10 const { __ } = wp.i18n;
11 const { withAPIData } = wp.components;
12 const { Component } = wp.element;
13
14 /**
15 * Internal dependencies
16 */
17 import GiveBlankSlate from '../../components/blank-slate';
18 import NoForms from '../../components/no-form';
19 import EditForm from '../../components/edit-form';
20 import FormPreview from './form/preview';
21 import FormSelect from '../../components/form-select';
22
23 /**
24 * Render Block UI For Editor
25 *
26 * @class GiveForm
27 * @extends {Component}
28 */
29 class GiveForm extends Component {
30 constructor( props ) {
31 super( ...props );
32 }
33
34 /**
35 * Render block UI
36 *
37 * @returns {object} JSX Object
38 * @memberof GiveForm
39 */
40 render() {
41 const props = this.props,
42 attributes = props.attributes,
43 { isLoading } = props.form;
44
45 // Render block UI
46 let blockUI;
47
48 if ( ! attributes.id ) {
49 if ( isLoading || isUndefined( props.form.data ) ) {
50 blockUI = <GiveBlankSlate title={ __( 'Loading...' ) } isLoader={ true } />;
51 } else if ( isEmpty( props.form.data ) ) {
52 blockUI = <NoForms />;
53 } else {
54 blockUI = <FormSelect { ... { ...props } } />;
55 }
56 } else if ( isEmpty( props.form.data ) ) {
57 blockUI = isLoading ?
58 <GiveBlankSlate title={ __( 'Loading...' ) } isLoader={ true } /> :
59 <EditForm formId={ attributes.id } { ... { ...props } } />;
60 } else {
61 blockUI = <FormPreview
62 html={ props.form.data }
63 { ... { ...props } } />;
64 }
65
66 return (
67 <div className={ !! props.isSelected ? `${ props.className } isSelected` : props.className } key="GiveBlockUI">
68 { blockUI }
69 </div>
70 );
71 }
72 }
73
74 /**
75 * Export component attaching withAPIdata
76 */
77 export default withAPIData( ( props ) => {
78 const { showTitle, showGoal, showContent, displayStyle, continueButtonTitle, id } = props.attributes;
79
80 let parameters = {
81 show_title: showTitle,
82 show_goal: showGoal,
83 show_content: showContent,
84 display_style: displayStyle,
85 };
86
87 if ( 'reveal' === displayStyle ) {
88 parameters.continue_button_title = continueButtonTitle;
89 }
90
91 parameters = stringify( pickBy( parameters, value => ! isUndefined( value ) ) );
92
93 return {
94 form: `/${ giveApiSettings.rest_base }/form/${ id }/?${ parameters }`,
95 forms: '/wp/v2/give_forms',
96 };
97 } )( GiveForm );
98