{"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"],"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,EAAAA,YACdC,GAAoC,CACjCL,EAAYE,EAAAA,UAAU,IAAI,EAC1BN,EAAOS,CAAK,CAChB,EACA,CAACT,CAAM,CAAA,EAGLU,EAAcF,EAAAA,YACfC,GAAoC,CACjCL,EAAYE,EAAAA,UAAU,KAAK,EAC3BL,EAAQQ,CAAK,CACjB,EACA,CAACR,CAAO,CAAA,EAGNU,EAAmBH,EAAAA,YAAY,IAAM,CACnCL,IAAaG,EAAAA,UAAU,MACvBJ,EAAS,SAAS,MAAA,EAClBE,EAAYE,EAAAA,UAAU,KAAK,IAE3BJ,EAAS,SAAS,KAAA,EAClBE,EAAYE,EAAAA,UAAU,IAAI,EAElC,EAAG,CAACH,EAAUD,CAAQ,CAAC,EAEvB,MAAO,CAAC,WAAAK,EAAY,YAAAG,EAAa,iBAAAC,EAAkB,SAAAR,CAAA,CACvD"}