UNPKG

preact-arco-design

Version:

Arco Design React UI Library.

74 lines (68 loc) 3.23 kB
var __assign = this && this.__assign || function () { __assign = Object.assign || function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } } return t; }; return __assign.apply(this, arguments); }; import React from "preact/compat"; import { STATUS } from "../interface"; import { isFunction, isObject } from "../../_util/is"; import UploadProgress from "./uploadProgress"; import IconImageClose from "../../../icon/react-icon/IconImageClose"; import IconEye from "../../../icon/react-icon/IconEye"; import IconDelete from "../../../icon/react-icon/IconDelete"; import IconUpload from "../../../icon/react-icon/IconUpload"; var PictureItem = function PictureItem(props) { var disabled = props.disabled, prefixCls = props.prefixCls, file = props.file, showUploadList = props.showUploadList; var cls = "".concat(prefixCls, "-list-item-picture"); var status = file.status, originFile = file.originFile; var url = file.url !== undefined ? file.url : originFile && isFunction(URL.createObjectURL) && URL.createObjectURL(originFile); var actionIcons = isObject(showUploadList) ? showUploadList : {}; return React.createElement("div", { className: cls }, status === STATUS.uploading ? React.createElement(UploadProgress, __assign({ onReupload: props.onReupload, onUpload: props.onUpload, onAbort: props.onAbort, listType: "picture-card", file: file, prefixCls: prefixCls, progressProps: props.progressProps }, actionIcons)) : React.createElement(React.Fragment, null, isFunction(actionIcons.imageRender) ? actionIcons.imageRender(file) : React.createElement("img", { src: url }), React.createElement("div", { className: "".concat(cls, "-mask") }, file.status === STATUS.fail && React.createElement("div", { className: "".concat(cls, "-error-tip") }, actionIcons.errorIcon !== null && React.createElement("span", { className: "".concat(prefixCls, "-list-error-icon") }, actionIcons.errorIcon || React.createElement(IconImageClose, null))), React.createElement("div", { className: "".concat(cls, "-operation") }, file.status !== STATUS.fail && actionIcons.previewIcon !== null && React.createElement("span", { className: "".concat(prefixCls, "-list-preview-icon"), onClick: function onClick() { props.onPreview && props.onPreview(file); } }, actionIcons.previewIcon || React.createElement(IconEye, null)), file.status === STATUS.fail && actionIcons.reuploadIcon !== null && React.createElement("span", { className: "".concat(props.prefixCls, "-list-reupload-icon"), onClick: function onClick() { props.onReupload && props.onReupload(file); } }, actionIcons.reuploadIcon || React.createElement(IconUpload, null)), !disabled && actionIcons.removeIcon !== null && React.createElement("span", { className: "".concat(prefixCls, "-list-remove-icon"), onClick: function onClick() { props.onRemove && props.onRemove(file); } }, actionIcons.removeIcon || React.createElement(IconDelete, null)))))); }; export default PictureItem;