mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
41 lines (40 loc) • 1.61 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var React = _interopRequireWildcard(require("react"));
var _dom = require("../../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', _dom.stopPropagation);
divElement.addEventListener('touchstart', _dom.stopPropagation);
return function () {
divElement.removeEventListener('pointerdown', _dom.stopPropagation);
divElement.removeEventListener('touchstart', _dom.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", (0, _objectSpread2.default)({}, props)) : /*#__PURE__*/React.createElement("audio", (0, _objectSpread2.default)({}, props)));
};
var _default = exports.default = MediaViewer;