{"version":3,"file":"useSound.cjs","sources":["../../../../src/internal/MediaEmbeds/useSound.ts"],"sourcesContent":["import {type ChangeEvent, type MutableRefObject, useCallback, useEffect, useState} from 'react';\n\nexport type Props = {\n    embedRef: MutableRefObject<HTMLMediaElement | null>;\n    mutedProp: boolean;\n};\n\nexport const useSound = ({embedRef, mutedProp}: Props) => {\n    const [volume, setVolume] = useState(0);\n    const handleSetVolume = useCallback(\n        (event: ChangeEvent<HTMLInputElement>) => {\n            setVolume(event.target.valueAsNumber);\n            embedRef.current!.volume = event.target.valueAsNumber;\n        },\n        [embedRef]\n    );\n\n    const [muted, setMuted] = useState(mutedProp);\n\n    useEffect(() => {\n        setMuted(mutedProp);\n    }, [mutedProp]);\n\n    const handleToggleMuted = useCallback(() => {\n        setMuted(!muted);\n    }, [muted]);\n\n    useEffect(() => {\n        setVolume(Number(embedRef.current?.volume || 0));\n    }, [muted, embedRef]);\n\n    return {volume, handleSetVolume, muted, handleToggleMuted, setVolume};\n};\n"],"names":["useSound","embedRef","mutedProp","volume","setVolume","useState","handleSetVolume","useCallback","event","muted","setMuted","useEffect","handleToggleMuted"],"mappings":"sHAOaA,EAAW,CAAC,CAAC,SAAAC,EAAU,UAAAC,KAAsB,CACtD,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAAS,CAAC,EAChCC,EAAkBC,EAAAA,YACnBC,GAAyC,CACtCJ,EAAUI,EAAM,OAAO,aAAa,EACpCP,EAAS,QAAS,OAASO,EAAM,OAAO,aAC5C,EACA,CAACP,CAAQ,CAAA,EAGP,CAACQ,EAAOC,CAAQ,EAAIL,EAAAA,SAASH,CAAS,EAE5CS,EAAAA,UAAU,IAAM,CACZD,EAASR,CAAS,CACtB,EAAG,CAACA,CAAS,CAAC,EAEd,MAAMU,EAAoBL,EAAAA,YAAY,IAAM,CACxCG,EAAS,CAACD,CAAK,CACnB,EAAG,CAACA,CAAK,CAAC,EAEVE,OAAAA,EAAAA,UAAU,IAAM,CACZP,EAAU,OAAOH,EAAS,SAAS,QAAU,CAAC,CAAC,CACnD,EAAG,CAACQ,EAAOR,CAAQ,CAAC,EAEb,CAAC,OAAAE,EAAQ,gBAAAG,EAAiB,MAAAG,EAAO,kBAAAG,EAAmB,UAAAR,CAAA,CAC/D"}