mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
33 lines • 1.21 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import * as React from 'react';
import { stopPropagation } from '../../utils/dom';
var MediaViewer = function MediaViewer(_ref) {
var url = _ref.url,
mediaType = _ref.mediaType;
var divRef = React.useRef(null);
var mediaRef = React.useRef();
React.useEffect(function () {
var divElement = divRef.current;
var mediaElement = mediaRef.current;
if (divElement && mediaElement) {
divElement.addEventListener('pointerdown', stopPropagation);
divElement.addEventListener('touchstart', stopPropagation);
return function () {
divElement.removeEventListener('pointerdown', stopPropagation);
divElement.removeEventListener('touchstart', stopPropagation);
if (mediaElement.played) {
mediaElement.pause();
}
};
}
}, []);
var props = {
src: url,
controls: true,
ref: mediaRef
};
return /*#__PURE__*/React.createElement("div", {
ref: divRef
}, mediaType == 'video' ? /*#__PURE__*/React.createElement("video", _objectSpread({}, props)) : /*#__PURE__*/React.createElement("audio", _objectSpread({}, props)));
};
export default MediaViewer;