UNPKG

@cainiaofe/cn-ui-m

Version:
27 lines (26 loc) 1.85 kB
import { __assign, __rest } from "tslib"; import * as React from 'react'; import { forwardRef, Fragment } from 'react'; import classNames from 'classnames'; import { CnIcon } from "../../cn-icon"; import { CnBadge } from "../../cn-badge"; import { CnStatusTag } from "../../cn-tag"; var Media = function (props, ref) { var action = props.action, _a = props.prefix, prefix = _a === void 0 ? 'cn-ui-m-' : _a, icon = props.icon, children = props.children, className = props.className, mediaImgUrl = props.mediaImgUrl, extraTags = props.extraTags, extraBadge = props.extraBadge, others = __rest(props, ["action", "prefix", "icon", "children", "className", "mediaImgUrl", "extraTags", "extraBadge"]); var avatar = (React.createElement("img", { src: mediaImgUrl, style: { width: 40, height: 40, borderRadius: '50%' } })); var tags = extraTags === null || extraTags === void 0 ? void 0 : extraTags.map(function (item, index) { return (React.createElement(CnStatusTag, { key: index, status: item.status, type: item.type }, item.text)); }); return (React.createElement("div", __assign({ ref: ref }, others, { className: classNames("".concat(prefix, "list-item-media"), action ? "".concat(prefix, "list-item-media--last") : null, className) }), extraTags ? tags : null, extraBadge ? React.createElement(CnBadge, { shape: "dot" }) : null, mediaImgUrl ? avatar : null, icon ? (React.createElement(CnIcon, { className: "".concat(prefix, "list-item-icon"), type: icon })) : null, React.createElement(Fragment, null, children))); }; export var CnListItemMedia = forwardRef(Media); var Action = function (props, ref) { return React.createElement(CnListItemMedia, __assign({}, props, { action: true, ref: ref })); }; export var CnListItemAction = forwardRef(Action); export default CnListItemMedia;