| Server IP : 193.146.211.90 / Your IP : 10.85.6.55 Web Server : Apache System : Linux wordpress-gti-69dcdb54f7-n4wdq 6.11.8-arch1-2 #1 SMP PREEMPT_DYNAMIC Fri, 15 Nov 2024 15:35:07 +0000 x86_64 User : 1001 ( 1001) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /bitnami/wordpress/wp-content/plugins/presto-player/src/admin/blocks/shared/ |
Upload File : |
const { useEffect, useState } = wp.element;
const { useSelect } = wp.data;
import { usePrevious } from "@/admin/blocks/util";
export default function ({ attributes, setAttributes }) {
const { chapters, poster } = attributes;
const [presetData, setPresetData] = useState({});
const data = {
branding: {},
loading: false,
presets: [],
presetData: {},
};
data.branding = useSelect((select) => {
return select("presto-player/player").branding();
});
useEffect(() => {
document.body.style.setProperty("--plyr-color-main", data.branding?.color);
}, [data.branding?.color]);
data.loading = useSelect((select) => {
return select("presto-player/player").presetsLoading();
});
data.presets = useSelect((select) => {
return select("presto-player/player").getPresets();
});
// set preset data when presets are loaded
useEffect(() => {
const thisPreset = data.presets.find((preset) => {
return preset.id === attributes?.preset;
});
data.presetData = thisPreset;
}, [data.presets, attributes?.preset]);
// This will reload the player to show the controls
let [count, setCount] = useState(1);
useEffect(() => {
setCount(count + 1);
}, [poster, data.presetData]);
// re-render only if times change
const prevChapters = usePrevious(chapters);
useEffect(() => {
let times = chapters?.map((item) => item.time);
let prevTimes = prevChapters?.map((item) => item.time);
if (_.difference(times, prevTimes).length) {
setCount(count + 1);
}
}, [chapters]);
return data;
}