PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.4.1
Presto Player v4.4.1
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
MediaProviders 2 months ago ProvidersPlaceholder 2 months ago audioPresets 2 months ago branding 8 months ago chapters 2 years ago components 2 months ago media 2 months ago overlays 2 months ago presets 1 month ago services 4 years ago settings 3 months ago styles 2 years ago tracks 2 months ago BlockInspectorControls.js 2 months ago BlockInspectorControls.scss 2 months ago Editing.js 2 years ago LinkPlaceholder.js 3 months ago Player.js 3 months ago Preview.js 4 days ago ProUpgradeModal.js 3 months ago VisibilityEditor.js 8 months ago audio-placeholder.js 2 months ago helpers.js 5 years ago options.js 2 months ago placeholder.js 2 months 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