PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.1
Presto Player v4.3.1
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 1 month ago FluentCRMConfig.js 5 years ago MailchimpConfig.js 5 years ago MailerLiteConfig.js 5 years ago WebhooksConfig.js 3 years ago YoutubeChannelId.js 2 weeks ago YoutubeChannelId.scss 2 weeks 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