UNPKG

1.09 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.useMediaHasMetadata = void 0;
4const react_1 = require("react");
5const useMediaHasMetadata = (mediaRef) => {
6 const [hasMetadata, setHasMetadata] = (0, react_1.useState)(false);
7 (0, react_1.useEffect)(() => {
8 const { current } = mediaRef;
9 if (!current) {
10 return;
11 }
12 const hasSourceChild = Array.from(current.childNodes).some((child) => child.nodeName === 'SOURCE');
13 if (!current.src && !hasSourceChild) {
14 const tagName = current.nodeName === 'AUDIO' ? '<Audio>' : '<Video>';
15 throw new Error(`No src found. Please provide a src prop or a <source> child to the ${tagName} element.`);
16 }
17 const handler = () => setHasMetadata(true);
18 current.addEventListener('loadedmetadata', handler);
19 return () => current.removeEventListener('loadedmetadata', handler);
20 }, [mediaRef]);
21 return hasMetadata;
22};
23exports.useMediaHasMetadata = useMediaHasMetadata;
24//# sourceMappingURL=use-media-metadata.js.map
\No newline at end of file