PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.27.2
GiveWP – Donation Plugin and Fundraising Platform v2.27.2
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 / chosen-select / index.js
give / blocks / components / chosen-select Last commit date
index.js 4 years ago
index.js
101 lines
1 /**
2 * WordPress dependencies
3 */
4 import { Component } from '@wordpress/element';
5 import { BaseControl } from '@wordpress/components';
6 import jquery from "jquery";
7
8 /**
9 * Render ChosenSelect Control
10 */
11 class ChosenSelect extends Component {
12 constructor( props ) {
13 super( props );
14
15 this.saveSetting = this.saveSetting.bind( this );
16 this.saveState = this.saveState.bind( this );
17 }
18
19 saveSetting( name, value ) {
20 this.props.setAttributes( {
21 [ name ]: value,
22 } );
23 }
24
25 saveState( name, value ) {
26 this.setState( {
27 [ name ]: value,
28 } );
29 }
30
31 componentDidMount() {
32 const { value } = this.props;
33
34 this.$el = jquery( this.el );
35 this.$el.val( value );
36
37 this.$input = this.$el.chosen( {
38 width: '100%',
39 } ).data( 'chosen' );
40
41 this.handleChange = this.handleChange.bind( this );
42
43 this.$el.on( 'change', this.handleChange );
44 }
45
46 componentWillUnmount() {
47 this.$el.off( 'change', this.handleChange );
48 this.$el.chosen( 'destroy' );
49 }
50
51 handleChange( e ) {
52 this.props.onChange( e.target.value );
53 }
54
55 componentDidUpdate() {
56 const $searchField = jquery( '.chosen-base-control' ).closest( '.chosen-container' ).find( '.chosen-search-input' );
57 this.$input.search_field.autocomplete( {
58 source: function( request, response ) {
59 const data = {
60 action: 'give_block_donation_form_search_results',
61 search: request.term,
62 };
63 const chosenBlock = jquery( '.give-block-chosen-select' );
64
65 jquery.post( ajaxurl, data, ( responseData ) => {
66 chosenBlock.empty();
67 responseData = JSON.parse( responseData );
68
69 if ( responseData.length > 0 ) {
70 response( jquery.map( responseData, function( item ) {
71 chosenBlock.append( `<option value="${item.id}">${item.name}</option>` );
72 } ) );
73
74 chosenBlock.trigger( 'chosen:updated' );
75 $searchField.val( request.term );
76 }
77 } );
78 },
79 } );
80 }
81
82 render() {
83 return (
84 <BaseControl className="give-chosen-base-control">
85 <select className="give-select give-select-chosen give-block-chosen-select" ref={ el => this.el = el }>
86 { this.props.options.map( ( option, index ) =>
87 <option
88 key={ `${ option.label }-${ option.value }-${ index }` }
89 value={ option.value }
90 >
91 { option.label }
92 </option>
93 ) }
94 </select>
95 </BaseControl>
96 );
97 }
98 }
99
100 export default ChosenSelect;
101