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