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 / options.js
presto-player / src / admin / blocks / shared Last commit date
MediaProviders 2 weeks ago ProvidersPlaceholder 2 weeks ago audioPresets 2 weeks ago branding 7 months ago chapters 2 years ago components 2 weeks ago media 2 weeks ago overlays 2 weeks ago presets 2 weeks ago services 4 years ago settings 2 months ago styles 2 years ago tracks 2 weeks ago BlockInspectorControls.js 2 weeks ago BlockInspectorControls.scss 2 weeks ago Editing.js 2 years ago LinkPlaceholder.js 2 months ago Player.js 1 month ago Preview.js 2 years ago ProUpgradeModal.js 1 month ago VisibilityEditor.js 7 months ago audio-placeholder.js 2 weeks ago helpers.js 5 years ago options.js 2 weeks ago placeholder.js 2 weeks ago
options.js
51 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 data.loading = useSelect((select) => {
19 return select("presto-player/player").presetsLoading();
20 });
21 data.presets = useSelect((select) => {
22 return select("presto-player/player").getPresets();
23 });
24
25 // set preset data when presets are loaded
26 useEffect(() => {
27 const thisPreset = data.presets.find((preset) => {
28 return preset.id === attributes?.preset;
29 });
30 data.presetData = thisPreset;
31 }, [data.presets, attributes?.preset]);
32
33 // This will reload the player to show the controls
34 let [count, setCount] = useState(1);
35 useEffect(() => {
36 setCount(count + 1);
37 }, [poster, data.presetData]);
38
39 // re-render only if times change
40 const prevChapters = usePrevious(chapters);
41 useEffect(() => {
42 let times = chapters?.map((item) => item.time);
43 let prevTimes = prevChapters?.map((item) => item.time);
44 if (_.difference(times, prevTimes).length) {
45 setCount(count + 1);
46 }
47 }, [chapters]);
48
49 return data;
50 }
51