Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
1 result

usePosition.ts

Blame
  • usePosition.ts 610 B
    import {useEffect, useState} from "react";
    
    export const usePosition = (video: HTMLVideoElement | null) => {
        const [position, setPosition] = useState<number>(0);
        useEffect(() => {
            if (video !== null) {
                const listener = () => {
                    window.requestAnimationFrame(() => {
                        setPosition(video.currentTime);
                    })
                };
                video.addEventListener("timeupdate", listener)
                return () => {
                    video.removeEventListener("timeupdate", listener)
                }
            }
        }, [video]);
        return position;
    }