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 / options.js
presto-player / src / admin / blocks / shared Last commit date
branding 5 years ago chapters 5 years ago components 5 years ago media 5 years ago presets 5 years ago settings 5 years ago styles 5 years ago tracks 5 years ago BlockInspectorControls.js 5 years ago LinkPlaceholder.js 5 years ago Player.js 5 years ago ProUpgradeModal.js 5 years ago VisibilityEditor.js 5 years ago helpers.js 5 years ago options.js 5 years ago placeholder.js 5 years ago
options.js
55 lines
1 const { useEffect, useState } = wp.element;
2 const { useSelect } = wp.data;
3 import { usePrevious } from "@/admin/blocks/util";
4
5 export default function ({ attributes, setAttributes }) {
6 const { chapters, poster } = attributes;
7 const [presetData, setPresetData] = useState({});
8 const data = {
9 branding: {},
10 loading: false,
11 presets: [],
12 presetData: {},
13 };
14
15 data.branding = useSelect((select) => {
16 return select("presto-player/player").branding();
17 });
18 useEffect(() => {
19 document.body.style.setProperty("--plyr-color-main", data.branding?.color);
20 }, [data.branding?.color]);
21
22 data.loading = useSelect((select) => {
23 return select("presto-player/player").presetsLoading();
24 });
25 data.presets = useSelect((select) => {
26 return select("presto-player/player").getPresets();
27 });
28
29 // set preset data when presets are loaded
30 useEffect(() => {
31 const thisPreset = data.presets.find((preset) => {
32 return preset.id === attributes?.preset;
33 });
34 data.presetData = thisPreset;
35 }, [data.presets, attributes?.preset]);
36
37 // This will reload the player to show the controls
38 let [count, setCount] = useState(1);
39 useEffect(() => {
40 setCount(count + 1);
41 }, [poster, data.presetData]);
42
43 // re-render only if times change
44 const prevChapters = usePrevious(chapters);
45 useEffect(() => {
46 let times = chapters?.map((item) => item.time);
47 let prevTimes = prevChapters?.map((item) => item.time);
48 if (_.difference(times, prevTimes).length) {
49 setCount(count + 1);
50 }
51 }, [chapters]);
52
53 return data;
54 }
55