PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.3
Presto Player v4.3.3
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 / MailchimpConfig.js
presto-player / src / admin / blocks / shared / presets / parts Last commit date
ActiveCampaignConfig.js 5 years ago ChooseProvider.js 2 months ago FluentCRMConfig.js 3 weeks ago MailchimpConfig.js 5 years ago MailerLiteConfig.js 5 years ago WebhooksConfig.js 3 years ago YoutubeChannelId.js 1 month ago YoutubeChannelId.scss 1 month ago
MailchimpConfig.js
90 lines
1 /**
2 * WordPress dependencies
3 */
4 const { __ } = wp.i18n;
5 const { SelectControl, TextControl, Notice } = wp.components;
6 const { useEffect, useState } = wp.element;
7 import LoadSelect from "../../components/LoadSelect";
8
9 export default ({ options, updateEmailState }) => {
10 const [fetching, setFetching] = useState(false);
11 const [lists, setLists] = useState([
12 { value: null, label: __("Choose an audience", "presto-player") },
13 ]);
14 const [error, setError] = useState("");
15
16 const fetchLists = async () => {
17 setFetching(true);
18 try {
19 const fetched = await wp.apiFetch({
20 path: "presto-player/v1/mailchimp/lists",
21 });
22
23 let listOptions = lists;
24 (fetched || []).forEach((list) => {
25 listOptions = [
26 ...listOptions,
27 ...[
28 {
29 value: list.id,
30 label: list.name,
31 },
32 ],
33 ];
34 });
35 setLists(listOptions);
36 } catch (e) {
37 if (e?.message) {
38 setError(e.message);
39 }
40 } finally {
41 setFetching(false);
42 }
43 };
44
45 useEffect(() => {
46 fetchLists();
47 }, []);
48
49 if (fetching) {
50 return (
51 <div>
52 <LoadSelect />
53 <LoadSelect />
54 </div>
55 );
56 }
57
58 if (error) {
59 return (
60 <Notice className="presto-notice" status="error" isDismissible={false}>
61 {error}
62 </Notice>
63 );
64 }
65
66 return (
67 <div>
68 <SelectControl
69 label={__("Choose an audience", "presto-player")}
70 value={options?.provider_list}
71 options={lists}
72 onChange={(provider_list) => updateEmailState({ provider_list })}
73 />
74 <TextControl
75 label={__("Tag", "presto-player")}
76 help={
77 <p>
78 {__(
79 "Give this contact an optional tag when they are added to the list.",
80 "presto-player"
81 )}
82 </p>
83 }
84 value={options?.provider_tag}
85 onChange={(provider_tag) => updateEmailState({ provider_tag })}
86 />
87 </div>
88 );
89 };
90