{"version":3,"file":"useTime.cjs","sources":["../../../../src/internal/MediaEmbeds/useTime.ts"],"sourcesContent":["import type {MutableRefObject} from 'react';\nimport {type ChangeEvent, useCallback, useEffect, useState} from 'react';\n\nimport {PlayModes} from './types.ts';\n\nexport type Props = {\n    embedRef: MutableRefObject<HTMLMediaElement | null>;\n    playMode: keyof typeof PlayModes;\n};\n\nexport const useTime = ({embedRef, playMode}: Props) => {\n    const [currentTime, setCurrentTime] = useState(0);\n\n    useEffect(() => {\n        const handler = () => {\n            embedRef.current?.currentTime &&\n                playMode === PlayModes.play &&\n                embedRef.current?.currentTime !== currentTime &&\n                setCurrentTime(embedRef.current?.currentTime);\n        };\n        const intervalId = setInterval(handler, 1000);\n        return () => {\n            clearInterval(intervalId);\n        };\n    }, [currentTime, playMode, embedRef]);\n\n    const handleSetTime = useCallback(\n        (event: ChangeEvent<HTMLInputElement>) => {\n            setCurrentTime(event.target.valueAsNumber);\n            embedRef.current!.currentTime = event.target.valueAsNumber;\n        },\n        [embedRef]\n    );\n\n    return {handleSetTime, currentTime, setCurrentTime};\n};\n"],"names":["useTime","embedRef","playMode","currentTime","setCurrentTime","useState","useEffect","intervalId","PlayModes","useCallback","event"],"mappings":"+IAUaA,EAAU,CAAC,CAAC,SAAAC,EAAU,SAAAC,KAAqB,CACpD,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAAA,SAAS,CAAC,EAEhDC,OAAAA,EAAAA,UAAU,IAAM,CAOZ,MAAMC,EAAa,YANH,IAAM,CAClBN,EAAS,SAAS,aACdC,IAAaM,EAAAA,UAAU,MACvBP,EAAS,SAAS,cAAgBE,GAClCC,EAAeH,EAAS,SAAS,WAAW,CACpD,EACwC,GAAI,EAC5C,MAAO,IAAM,CACT,cAAcM,CAAU,CAC5B,CACJ,EAAG,CAACJ,EAAaD,EAAUD,CAAQ,CAAC,EAU7B,CAAC,cARcQ,EAAAA,YACjBC,GAAyC,CACtCN,EAAeM,EAAM,OAAO,aAAa,EACzCT,EAAS,QAAS,YAAcS,EAAM,OAAO,aACjD,EACA,CAACT,CAAQ,CAAA,EAGU,YAAAE,EAAa,eAAAC,CAAA,CACxC"}