{"version":3,"file":"usePlay.cjs","sources":["../../../../src/internal/MediaEmbeds/usePlay.ts"],"sourcesContent":["import type {SyntheticEvent, MutableRefObject} from 'react';\nimport {useCallback, useState} from 'react';\n\nimport {PlayModes} from './types.ts';\n\nexport type Props<TElement> = {\n    onPlay: (event: SyntheticEvent<TElement>) => void;\n    onPause: (event: SyntheticEvent<TElement>) => void;\n    embedRef: MutableRefObject<TElement | null>;\n};\n\nexport const usePlay = <TElement extends HTMLMediaElement>({\n    onPlay,\n    onPause,\n    embedRef,\n}: Props<TElement>) => {\n    const [playMode, setPlayMode] = useState<PlayModes>(PlayModes.pristine);\n\n    const handlePlay = useCallback(\n        (event: SyntheticEvent<TElement>) => {\n            setPlayMode(PlayModes.play);\n            onPlay(event);\n        },\n        [onPlay]\n    );\n\n    const handlePause = useCallback(\n        (event: SyntheticEvent<TElement>) => {\n            setPlayMode(PlayModes.pause);\n            onPause(event);\n        },\n        [onPause]\n    );\n\n    const handleTogglePlay = useCallback(() => {\n        if (playMode === PlayModes.play) {\n            embedRef.current?.pause();\n            setPlayMode(PlayModes.pause);\n        } else {\n            embedRef.current?.play();\n            setPlayMode(PlayModes.play);\n        }\n    }, [playMode, embedRef]);\n\n    return {handlePlay, handlePause, handleTogglePlay, playMode};\n};\n"],"names":["usePlay","onPlay","onPause","embedRef","playMode","setPlayMode","useState","PlayModes","handlePlay","useCallback","event","handlePause","handleTogglePlay","_a","_b"],"mappings":"+IAWaA,EAAU,CAAoC,CACvD,OAAAC,EACA,QAAAC,EACA,SAAAC,CACJ,IAAuB,CACnB,KAAM,CAACC,EAAUC,CAAW,EAAIC,EAAAA,SAAoBC,EAAAA,UAAU,QAAQ,EAEhEC,EAAaC,EAAA,YACdC,GAAoC,CACjCL,EAAYE,YAAU,IAAI,EAC1BN,EAAOS,CAAK,CAChB,EACA,CAACT,CAAM,CACX,EAEMU,EAAcF,EAAA,YACfC,GAAoC,CACjCL,EAAYE,YAAU,KAAK,EAC3BL,EAAQQ,CAAK,CACjB,EACA,CAACR,CAAO,CACZ,EAEMU,EAAmBH,EAAAA,YAAY,IAAM,SACnCL,IAAaG,YAAU,OACvBM,EAAAV,EAAS,UAAT,MAAAU,EAAkB,QAClBR,EAAYE,YAAU,KAAK,KAE3BO,EAAAX,EAAS,UAAT,MAAAW,EAAkB,OAClBT,EAAYE,YAAU,IAAI,EAC9B,EACD,CAACH,EAAUD,CAAQ,CAAC,EAEvB,MAAO,CAAC,WAAAK,EAAY,YAAAG,EAAa,iBAAAC,EAAkB,SAAAR,CAAQ,CAC/D"}