Select Git revision
useTextTrackCues.ts
-
Janne Mareike Koschinski authoredJanne Mareike Koschinski authored
useTextTrackCues.ts 915 B
import {useEffect, useState} from "react";
export const useTextTrackCues = (track: HTMLTrackElement) => {
const [cues, setCues] = useState<TextTrackCue[]>([]);
useEffect(() => {
track.track.mode = "hidden";
if (track.readyState >= 1) {
setCues(Array.from(track.track.cues || []))
} else {
let animationFrame: number | null = null;
const listener = () => {
animationFrame = window.requestAnimationFrame(() => {
setCues(Array.from(track.track.cues || []))
})
};
track.addEventListener("load", listener)
return () => {
track.removeEventListener("load", listener);
if (animationFrame) {
window.cancelAnimationFrame(animationFrame);
}
}
}
}, [track]);
return cues;
}