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 / options.js
presto-player / src / admin / blocks / shared Last commit date
MediaProviders 1 month ago ProvidersPlaceholder 1 month ago audioPresets 1 month ago branding 8 months ago chapters 2 years ago components 1 month ago media 1 month ago overlays 1 month ago presets 2 weeks ago services 4 years ago settings 2 months ago styles 2 years ago tracks 1 month ago BlockInspectorControls.js 1 month ago BlockInspectorControls.scss 1 month ago Editing.js 2 years ago LinkPlaceholder.js 2 months ago Player.js 2 months ago Preview.js 2 years ago ProUpgradeModal.js 2 months ago VisibilityEditor.js 8 months ago audio-placeholder.js 1 month ago helpers.js 5 years ago options.js 1 month ago placeholder.js 1 month 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