PluginProbe ʕ •ᴥ•ʔ
JetFormBuilder — Dynamic Blocks Form Builder / 3.1.1
JetFormBuilder — Dynamic Blocks Form Builder v3.1.1
3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.4.0 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.1.0 2.1.1 2.1.10 2.1.11 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 3.0.0 3.0.0.1 3.0.0.2 3.0.0.3 3.0.1 3.0.1.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.0.1 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.3.2 3.3.3 3.3.3.1 3.3.4 3.3.4.1 3.3.4.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.5.1 3.4.5.2 3.4.6 3.4.7 3.4.7.1 3.5.0 3.5.1 3.5.1.1 3.5.1.2 3.5.2 3.5.2.1 3.5.3 3.5.4 3.5.5 3.5.6 3.5.6.1 3.5.6.2 3.5.6.3 3.6.0
jetformbuilder / assets / src / package / actions / components / RequestButton.js
jetformbuilder / assets / src / package / actions / components Last commit date
ActionFetchButton.js 2 years ago ActionMessages.js 2 years ago ActionMessagesSlotFills.js 2 years ago FetchAjaxButton.js 2 years ago FetchApiButton.js 2 years ago PlaceholderMessage.js 2 years ago RequestButton.js 2 years ago RequestLoadingButton.js 2 years ago UseGlobalControl.js 2 years ago ValidateButton.js 2 years ago ValidateButtonWithStore.js 2 years ago
RequestButton.js
84 lines
1 const { __ } = wp.i18n;
2
3 const {
4 Button,
5 } = wp.components;
6
7 const { useEffect } = wp.element;
8
9 function RequestButton( {
10 label,
11 ajaxArgs = {},
12 onSuccessRequest = () => {
13 },
14 onFailRequest = () => {
15 },
16 onLoading = () => {
17 },
18 className = '',
19 children = () => {
20 },
21 disabled = false,
22 customRequest = false,
23 isHidden = false,
24 hasFetched = -1,
25 ...buttonProps
26 } ) {
27
28 className = (
29 'string' === typeof className
30 ? className
31 : className.join( ' ' )
32 );
33
34 const defaultRequest = () => {
35 onLoading();
36
37 jQuery.ajax( {
38 url: ajaxurl,
39 type: 'POST',
40 data: ajaxArgs,
41 } ).
42 done( response => response.success
43 ? onSuccessRequest( response )
44 : onFailRequest() ).
45 fail( () => onFailRequest() );
46 };
47
48 const request = () => {
49 if ( false === customRequest ) {
50 defaultRequest();
51 }
52 else if ( 'function' === typeof customRequest ) {
53 customRequest();
54 }
55 else {
56 onFailRequest();
57 }
58 };
59
60 useEffect( () => {
61 if ( isHidden && -1 === hasFetched ) {
62 request();
63 }
64 }, [] );
65
66 if ( isHidden ) {
67 return null;
68 }
69
70 return <Button
71 disabled={ disabled }
72 key={ 'validate_api_key' }
73 onClick={ request }
74 className={ className + ' jet-fb-button line-with-input' }
75 variant={ 'secondary' }
76 { ...buttonProps }
77 >
78 { children && children }
79 { label }
80 </Button>;
81 }
82
83 export default RequestButton;
84