PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.3
Presto Player v4.3.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 / YoutubeChannelId.js
presto-player / src / admin / blocks / shared / presets / parts Last commit date
ActiveCampaignConfig.js 5 years ago ChooseProvider.js 3 months ago FluentCRMConfig.js 1 month 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
YoutubeChannelId.js
97 lines
1 /**
2 * WordPress dependencies
3 */
4 const { __ } = wp.i18n;
5 const { TextControl, ExternalLink, Button, Flex } = wp.components;
6 const { useState, useEffect } = wp.element;
7 const { useSelect, dispatch } = wp.data;
8
9 import "./YoutubeChannelId.scss";
10
11 export default ({ onClose, value, setValue }) => {
12 const [saving, setSaving] = useState(false);
13
14 const userCanReadSettings = wp.data.useSelect((select) =>
15 select("core").canUser("read", "settings")
16 );
17
18 const youtube = useSelect((select) => {
19 return select("presto-player/player").youtube();
20 });
21
22 useEffect(() => {
23 setValue(youtube.channel_id);
24 }, [youtube?.channel_id]);
25
26 const handleSubmit = async (e) => {
27 e.preventDefault();
28 setSaving(true);
29 dispatch("presto-player/player").updateYoutube({ channel_id: value });
30
31 const data = {
32 ...youtube,
33 ...{ channel_id: value },
34 };
35
36 try {
37 let response = await wp.apiFetch({
38 path: "wp/v2/settings",
39 method: "POST",
40 data: {
41 presto_player_youtube: data,
42 },
43 });
44 if (response?.presto_player_youtube) {
45 dispatch("presto-player/player").setYoutube(
46 response?.presto_player_youtube
47 );
48 onClose();
49 }
50 } catch (e) {
51 } finally {
52 setSaving(false);
53 }
54 };
55
56 // use must be able to read settings
57 if (!userCanReadSettings) {
58 return "";
59 }
60
61 return (
62 <form onSubmit={handleSubmit}>
63 <TextControl
64 className="presto-youtube-channel__input"
65 label={__("Youtube Channel ID", "presto-player")}
66 help={
67 <p>
68 <ExternalLink href="https://support.google.com/youtube/answer/3250431?hl=en">
69 {__("Find my channel id", "presto-player")}
70 </ExternalLink>
71 </p>
72 }
73 value={value}
74 onChange={(channel_id) => setValue(channel_id)}
75 // required
76 />
77
78 <Button
79 disabled={saving}
80 isBusy={saving}
81 className="presto-youtube-channel__button"
82 isPrimary
83 type="submot"
84 >
85 {__("Save", "presto-player")}
86 </Button>
87 <Button
88 onClick={onClose}
89 className="presto-youtube-channel__button"
90 isTertiary
91 >
92 {__("Cancel", "presto-player")}
93 </Button>
94 </form>
95 );
96 };
97