PluginProbe ʕ •ᴥ•ʔ
Presto Player / 1.5.13
Presto Player v1.5.13
4.5.0 4.4.1 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 / branding / index.js
presto-player / src / admin / blocks / shared / branding Last commit date
index.js 5 years ago
index.js
158 lines
1 /**
2 * WordPress dependencies
3 */
4 const { __ } = wp.i18n;
5 const {
6 ColorPicker,
7 Button,
8 withNotices,
9 BaseControl,
10 RangeControl,
11 } = wp.components;
12 const { MediaUpload, MediaUploadCheck } = wp.blockEditor;
13 const { useInstanceId } = wp.compose;
14 const { useState } = wp.element;
15 const { dispatch, useSelect } = wp.data;
16 import ProBadge from "@/admin/blocks/shared/components/ProBadge";
17
18 const VIDEO_LOGO_ALLOWED_MEDIA_TYPES = ["image"];
19
20 function PlayerSettings({ setAttributes, attributes, type }) {
21 const instanceId = useInstanceId(PlayerSettings);
22 const [pickerRender, setPickerRender] = useState(1);
23
24 // get branding options
25 const branding = useSelect((select) => {
26 return select("presto-player/player").branding();
27 });
28 // save options
29 const saveOptions = async () => {
30 await dispatch("presto-player/player").saveOptions({
31 branding,
32 });
33 wp.data.dispatch("core/notices").createNotice(
34 "success", // Can be one of: success, info, warning, error.
35 "Player branding saved.", // Text string to display.
36 {
37 type: "snackbar",
38 isDismissible: true, // Whether the user can dismiss the notice.
39 // Any actions the user can perform.
40 }
41 );
42 };
43
44 function onSelectLogo(image) {
45 dispatch("presto-player/player").updateBranding("logo", image.url);
46 }
47
48 function onRemoveLogo() {
49 dispatch("presto-player/player").updateBranding("logo", "");
50 }
51
52 return (
53 <div className="presto-player__panel--branding">
54 <p>
55 {__(
56 "Here you can select the global player branding This will apply to all players on the site.",
57 "presto-player"
58 )}
59 </p>
60
61 <MediaUploadCheck>
62 <BaseControl className="editor-video-poster-control">
63 <BaseControl.VisualLabel>
64 <p>
65 {__("Logo Overlay", "presto-player")}{" "}
66 {!prestoPlayer?.isPremium && <ProBadge />}
67 </p>
68 </BaseControl.VisualLabel>
69 <MediaUpload
70 title={__("Select logo overlay image", "presto-player")}
71 onSelect={onSelectLogo}
72 allowedTypes={VIDEO_LOGO_ALLOWED_MEDIA_TYPES}
73 render={({ open }) => (
74 <Button
75 className="presto-setting__logo"
76 isSecondary
77 onClick={() => {
78 if (!prestoPlayer?.isPremium) {
79 dispatch("presto-player/player").setProModal(true);
80 return;
81 }
82 open();
83 }}
84 aria-describedby={`video-block__logo-image-description-${instanceId}`}
85 >
86 {!branding?.logo
87 ? __("Select", "presto-player")
88 : __("Replace", "presto-player")}
89 </Button>
90 )}
91 />
92 <p id={`video-block__logo-image-description-${instanceId}`} hidden>
93 {branding?.logo
94 ? sprintf(
95 /* translators: %s: poster image URL. */
96 __("The current logo image url is %s", "presto-player"),
97 branding?.logo
98 )
99 : __(
100 "There is no logo image currently selected",
101 "presto-player"
102 )}
103 </p>
104 {!!branding?.logo && (
105 <Button onClick={onRemoveLogo} isTertiary>
106 {__("Remove", "presto-player")}
107 </Button>
108 )}
109 </BaseControl>
110 </MediaUploadCheck>
111
112 {!!branding?.logo && (
113 <RangeControl
114 label={__("Logo Max Width", "presto-player")}
115 value={branding?.logo_width || 150}
116 onChange={(width) =>
117 dispatch("presto-player/player").updateBranding("logo_width", width)
118 }
119 min={1}
120 max={400}
121 />
122 )}
123
124 <ColorPicker
125 color={branding?.color}
126 onChangeComplete={(value) => {
127 dispatch("presto-player/player").updateBranding("color", value.hex);
128 }}
129 key={pickerRender}
130 disableAlpha
131 />
132
133 {branding?.color && (
134 <BaseControl>
135 <Button
136 isSecondary
137 onClick={() => {
138 dispatch("presto-player/player").updateBranding(
139 "color",
140 prestoPlayer?.defaults?.color || "#00b3ff"
141 );
142 setPickerRender(pickerRender + 1);
143 }}
144 >
145 {__("Reset Color", "presto-player")}
146 </Button>
147 </BaseControl>
148 )}
149
150 <Button isPrimary onClick={saveOptions}>
151 {__("Save Branding", "presto-player")}
152 </Button>
153 </div>
154 );
155 }
156
157 export default withNotices(PlayerSettings);
158