{"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","_a","PlayModes","_b","_c","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,CAON,MAAAC,EAAa,YANH,IAAM,YAClBC,EAAAP,EAAS,UAAT,MAAAO,EAAkB,aACdN,IAAaO,EAAAA,UAAU,QACvBC,EAAAT,EAAS,UAAT,YAAAS,EAAkB,eAAgBP,GAClCC,GAAeO,EAAAV,EAAS,UAAT,YAAAU,EAAkB,WAAW,CACpD,EACwC,GAAI,EAC5C,MAAO,IAAM,CACT,cAAcJ,CAAU,CAC5B,CACD,EAAA,CAACJ,EAAaD,EAAUD,CAAQ,CAAC,EAU7B,CAAC,cARcW,EAAA,YACjBC,GAAyC,CACvBT,EAAAS,EAAM,OAAO,aAAa,EAChCZ,EAAA,QAAS,YAAcY,EAAM,OAAO,aACjD,EACA,CAACZ,CAAQ,CACb,EAEuB,YAAAE,EAAa,eAAAC,CAAc,CACtD"}