UNPKG

mobile-more

Version:

基于 antd-mobile v5 扩展移动端 UI 组件

102 lines (101 loc) 4.87 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _ut = require("ut2"); var _utilHelpers = require("util-helpers"); var _classnames = _interopRequireDefault(require("classnames")); var _dolyIcons = require("doly-icons"); var _antdMobile = require("antd-mobile"); var _MediaViewer = _interopRequireDefault(require("./MediaViewer")); var _utils = require("./utils"); var _config = require("../../config"); require("./index.css"); var _excluded = ["file", "renderView", "unsupportedTipText", "iframeToolbar", "closeIcon", "imageRender", "renderFooter", "onClose"]; var prefixCls = "".concat(_config.prefixClass, "-file-viewer"); var BizFileViewer = function BizFileViewer(props) { var file = props.file, renderView = props.renderView, customUnsupportedTipText = props.unsupportedTipText, _props$iframeToolbar = props.iframeToolbar, iframeToolbar = _props$iframeToolbar === void 0 ? false : _props$iframeToolbar, closeIcon = props.closeIcon, imageRender = props.imageRender, _renderFooter = props.renderFooter, onClose = props.onClose, restProps = (0, _objectWithoutProperties2.default)(props, _excluded); var fileInfo = (0, _react.useMemo)(function () { return (0, _utils.transformUploadFile)(file); }, [file]); return /*#__PURE__*/_react.default.createElement(_antdMobile.ImageViewer, (0, _objectSpread2.default)((0, _objectSpread2.default)({ imageRender: fileInfo.fileType === 'image' ? imageRender : function () { var view; if (imageRender) { view = imageRender.apply(void 0, arguments); } else { if (fileInfo.fileType === 'pdf') { if ((0, _utils.isValidPdfUrl)(fileInfo.url)) { view = /*#__PURE__*/_react.default.createElement("iframe", { src: fileInfo.url + (iframeToolbar ? '' : '#toolbar=0'), style: { border: '0 none', width: '75vw', height: '80vh' } }); } } else if (fileInfo.fileType === 'audio' || fileInfo.fileType === 'video') { view = /*#__PURE__*/_react.default.createElement(_MediaViewer.default, { url: fileInfo.url, mediaType: fileInfo.fileType }); } if (typeof renderView === 'function') { view = renderView(view, fileInfo); } if ((0, _ut.isNil)(view) || view === false) { if (typeof customUnsupportedTipText === 'function') { view = customUnsupportedTipText(fileInfo); } else if (customUnsupportedTipText) { view = customUnsupportedTipText; } else { view = /*#__PURE__*/_react.default.createElement("div", { className: "".concat(prefixCls, "-unsupported") }, "\u8BE5\u6587\u4EF6\u4E0D\u652F\u6301\u9884\u89C8\uFF0C\u4F60\u53EF\u4EE5", /*#__PURE__*/_react.default.createElement("a", { onClick: function onClick() { return (0, _utilHelpers.download)(fileInfo.url, { dataType: 'url', fileName: fileInfo.name }); } }, "\u70B9\u51FB\u4E0B\u8F7D"), "\u540E\u67E5\u770B\u3002"); } } } return /*#__PURE__*/_react.default.createElement("div", { className: (0, _classnames.default)(prefixCls, (0, _defineProperty2.default)({}, "".concat(prefixCls, "-").concat(fileInfo.fileType), !!fileInfo.fileType)) }, view); }, onClose: onClose }, restProps), {}, { image: fileInfo.url, renderFooter: function renderFooter(image) { var footerContent = _renderFooter === null || _renderFooter === void 0 ? void 0 : _renderFooter(image); return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", { className: "".concat(prefixCls, "-preview-close"), onClick: onClose }, closeIcon || /*#__PURE__*/_react.default.createElement(_dolyIcons.XLg, null)), footerContent); } })); }; BizFileViewer.getFileThumbUrl = _utils.getFileThumbUrl; BizFileViewer.transformUploadFile = _utils.transformUploadFile; BizFileViewer.supports = _utils.supports; var _default = exports.default = BizFileViewer;