mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 02:31:45 +00:00
feat: async video event dispatch
This commit is contained in:
@ -114,14 +114,16 @@ export default (api: YoutubePlayer) => {
|
|||||||
pause: (e: Event) => playPausedHandler(e, 'pause'),
|
pause: (e: Event) => playPausedHandler(e, 'pause'),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const videoEventDispatcher = async (name: string, videoData: VideoDataChangeValue) => document.dispatchEvent(
|
||||||
|
new CustomEvent<VideoDataChanged>('videodatachange', {
|
||||||
|
detail: { name, videoData },
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
const waitingEvent = new Set<string>();
|
const waitingEvent = new Set<string>();
|
||||||
// Name = "dataloaded" and abit later "dataupdated"
|
// Name = "dataloaded" and abit later "dataupdated"
|
||||||
api.addEventListener('videodatachange', (name: string, videoData) => {
|
api.addEventListener('videodatachange', (name: string, videoData) => {
|
||||||
document.dispatchEvent(
|
videoEventDispatcher(name, videoData);
|
||||||
new CustomEvent<VideoDataChanged>('videodatachange', {
|
|
||||||
detail: { name, videoData },
|
|
||||||
}),
|
|
||||||
);
|
|
||||||
|
|
||||||
if (name === 'dataupdated' && waitingEvent.has(videoData.videoId)) {
|
if (name === 'dataupdated' && waitingEvent.has(videoData.videoId)) {
|
||||||
waitingEvent.delete(videoData.videoId);
|
waitingEvent.delete(videoData.videoId);
|
||||||
|
|||||||
Reference in New Issue
Block a user