PluginProbe ʕ •ᴥ•ʔ
Presto Player / 2.0.3
Presto Player v2.0.3
4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / admin / blocks / shared / presets / parts / FluentCRMConfig.js
presto-player / src / admin / blocks / shared / presets / parts Last commit date
ActiveCampaignConfig.js 5 years ago ChooseProvider.js 3 years ago FluentCRMConfig.js 5 years ago MailchimpConfig.js 5 years ago MailerLiteConfig.js 5 years ago WebhooksConfig.js 3 years ago YoutubeChannelId.js 4 years ago
FluentCRMConfig.js
122 lines
1 /**
2 * WordPress dependencies
3 */
4 const { __ } = wp.i18n;
5 const { SelectControl, Notice } = wp.components;
6 const { useEffect, useState } = wp.element;
7 import LoadSelect from "../../components/LoadSelect";
8
9 export default ({ options, updateEmailState }) => {
10 const [fetchingLists, setFetchingLists] = useState(false);
11 const [fetchingTags, setFetchingTags] = useState(false);
12
13 const [lists, setLists] = useState([
14 { value: null, label: __("Choose a list", "presto-player") },
15 ]);
16 const [tags, setTags] = useState([
17 { value: null, label: __("Choose a tag", "presto-player") },
18 ]);
19 const [error, setError] = useState("");
20
21 const fetchLists = async () => {
22 setFetchingLists(true);
23 try {
24 const fetched = await wp.apiFetch({
25 path: "presto-player/v1/fluentcrm/lists",
26 });
27
28 let listOptions = lists;
29 (fetched || []).forEach((list) => {
30 listOptions = [
31 ...listOptions,
32 ...[
33 {
34 value: list.id,
35 label: list.title || list.slug,
36 },
37 ],
38 ];
39 });
40 setLists(listOptions);
41 } catch (e) {
42 if (e?.message) {
43 setError(e.message);
44 }
45 } finally {
46 setFetchingLists(false);
47 }
48 };
49
50 const fetchTags = async () => {
51 setFetchingTags(true);
52 try {
53 const fetched = await wp.apiFetch({
54 path: "presto-player/v1/fluentcrm/tags",
55 });
56
57 let tagOptions = tags;
58 (fetched || []).forEach((tag) => {
59 tagOptions = [
60 ...tagOptions,
61 ...[
62 {
63 value: tag.id,
64 label: tag.title || tag.slug,
65 },
66 ],
67 ];
68 });
69 setTags(tagOptions);
70 } catch (e) {
71 if (e?.message) {
72 setError(e.message);
73 }
74 } finally {
75 setFetchingTags(false);
76 }
77 };
78
79 useEffect(() => {
80 fetchLists();
81 fetchTags();
82 }, []);
83
84 if (error) {
85 return (
86 <Notice className="presto-notice" status="error" isDismissible={false}>
87 {error}
88 </Notice>
89 );
90 }
91
92 return (
93 <div>
94 {fetchingLists ? (
95 <LoadSelect />
96 ) : (
97 lists.length > 1 && (
98 <SelectControl
99 label={__("Choose a list", "presto-player")}
100 value={options?.provider_list}
101 options={lists}
102 onChange={(provider_list) => updateEmailState({ provider_list })}
103 />
104 )
105 )}
106
107 {fetchingTags ? (
108 <LoadSelect />
109 ) : (
110 tags.length > 1 && (
111 <SelectControl
112 label={__("Choose a tag", "presto-player")}
113 value={options?.provider_tag}
114 options={tags}
115 onChange={(provider_tag) => updateEmailState({ provider_tag })}
116 />
117 )
118 )}
119 </div>
120 );
121 };
122