UNPKG

koval-ui

Version:

React components collection with minimalistic design. Supports theming, layout, and input validation.

1 lines 2.01 kB
{"version":3,"file":"useLoadingState.cjs","sources":["../../../../src/internal/MediaEmbeds/useLoadingState.ts"],"sourcesContent":["import type {MutableRefObject, Dispatch, SetStateAction, SyntheticEvent} from 'react';\nimport {useCallback, useState} from 'react';\n\nexport type Props = {\n embedRef: MutableRefObject<HTMLMediaElement | null>;\n setDuration: Dispatch<SetStateAction<number>>;\n onReady: (event: SyntheticEvent<HTMLVideoElement>) => void;\n onError: (event: SyntheticEvent<HTMLVideoElement>) => void;\n};\n\nexport const useLoadingState = ({embedRef, setDuration, onReady, onError}: Props) => {\n const handleLoadedMetaData = useCallback(() => {\n embedRef.current?.duration && setDuration(embedRef.current?.duration);\n }, [setDuration, embedRef]);\n\n const [readyToPlay, setReadyToPlay] = useState(false);\n\n const handleCanPlay = useCallback(\n (event: SyntheticEvent<HTMLVideoElement>) => {\n setReadyToPlay(true);\n onReady(event);\n },\n [onReady]\n );\n\n const handleError = useCallback(\n (event: SyntheticEvent<HTMLVideoElement>) => {\n onError(event);\n },\n [onError]\n );\n\n return {handleLoadedMetaData, readyToPlay, handleCanPlay, handleError};\n};\n"],"names":["useLoadingState","embedRef","setDuration","onReady","onError","handleLoadedMetaData","useCallback","_a","_b","readyToPlay","setReadyToPlay","useState","handleCanPlay","event","handleError"],"mappings":"sHAUaA,EAAkB,CAAC,CAAC,SAAAC,EAAU,YAAAC,EAAa,QAAAC,EAAS,QAAAC,KAAoB,CAC3E,MAAAC,EAAuBC,EAAAA,YAAY,IAAM,UAC3CC,EAAAN,EAAS,UAAT,MAAAM,EAAkB,UAAYL,GAAYM,EAAAP,EAAS,UAAT,YAAAO,EAAkB,QAAQ,CAAA,EACrE,CAACN,EAAaD,CAAQ,CAAC,EAEpB,CAACQ,EAAaC,CAAc,EAAIC,EAAAA,SAAS,EAAK,EAE9CC,EAAgBN,EAAA,YACjBO,GAA4C,CACzCH,EAAe,EAAI,EACnBP,EAAQU,CAAK,CACjB,EACA,CAACV,CAAO,CACZ,EAEMW,EAAcR,EAAA,YACfO,GAA4C,CACzCT,EAAQS,CAAK,CACjB,EACA,CAACT,CAAO,CACZ,EAEA,MAAO,CAAC,qBAAAC,EAAsB,YAAAI,EAAa,cAAAG,EAAe,YAAAE,CAAW,CACzE"}