UNPKG

@alifd/meet-react

Version:

Fusion Mobile React UI System Component

86 lines 5 kB
import { rpx2vw4style as __rpx2vw__ } from "@alifd/babel-runtime-jsx-style-transform"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } import { __rest } from "tslib"; import React, { createElement } from "react"; import classNames from 'classnames'; import View from '../view'; import Icon from '../icon'; import { isInvalidValue, isNumber, isValidArray, noop } from '../utils'; var ARROW_ICON_MAP = { right: 'arrow-right', up: 'arrow-up', down: 'arrow-down', loading: 'loading' }; var Card = function Card(props) { var _props$prefix = props.prefix, prefix = _props$prefix === void 0 ? 'mt-' : _props$prefix, _props$showHeadDivide = props.showHeadDivider, showHeadDivider = _props$showHeadDivide === void 0 ? true : _props$showHeadDivide, media = props.media, arrow = props.arrow, extra = props.extra, title = props.title, className = props.className, headerClassName = props.headerClassName, headerStyle = props.headerStyle, bodyClassName = props.bodyClassName, footerClassName = props.footerClassName, contentHeight = props.contentHeight, _props$bodyStyle = props.bodyStyle, bodyStyle = _props$bodyStyle === void 0 ? {} : _props$bodyStyle, _props$footerStyle = props.footerStyle, footerStyle = _props$footerStyle === void 0 ? {} : _props$footerStyle, actions = props.actions, children = props.children, _props$onHeaderClick = props.onHeaderClick, onHeaderClick = _props$onHeaderClick === void 0 ? noop : _props$onHeaderClick, _props$onBodyClick = props.onBodyClick, onBodyClick = _props$onBodyClick === void 0 ? noop : _props$onBodyClick, others = __rest(props, ["prefix", "showHeadDivider", "media", "arrow", "extra", "title", "className", "headerClassName", "headerStyle", "bodyClassName", "footerClassName", "contentHeight", "bodyStyle", "footerStyle", "actions", "children", "onHeaderClick", "onBodyClick"]); var clsPrefix = "".concat(prefix, "card"); var clses = { card: classNames(className, clsPrefix), header: classNames("".concat(clsPrefix, "-header"), headerClassName, _defineProperty({}, "".concat(clsPrefix, "-header--no-divider"), !showHeadDivider)), title: "".concat(clsPrefix, "-title"), media: "".concat(clsPrefix, "-media"), extra: "".concat(clsPrefix, "-extra"), arrow: "".concat(clsPrefix, "-arrow"), body: classNames("".concat(clsPrefix, "-body"), bodyClassName), footer: classNames("".concat(clsPrefix, "-footer"), footerClassName) }; var _bodyStyle = bodyStyle; if (isNumber(contentHeight) && contentHeight >= 0) { _bodyStyle.height = contentHeight; } return /*#__PURE__*/React.createElement(View, _extends({ className: clses.card }, others), !isInvalidValue(title) && !!title ? /*#__PURE__*/React.createElement(View, { className: clses.header, onClick: onHeaderClick, style: __rpx2vw__(headerStyle) }, media ? /*#__PURE__*/React.createElement(View, { className: clses.media }, media) : null, /*#__PURE__*/React.createElement(View, { className: clses.title }, title), extra ? /*#__PURE__*/React.createElement(View, { className: clses.extra }, extra) : null, Object.keys(ARROW_ICON_MAP).indexOf(arrow) > -1 ? /*#__PURE__*/React.createElement(Icon, { className: clses.arrow, type: ARROW_ICON_MAP[arrow], size: "s" }) : null) : null, children ? /*#__PURE__*/React.createElement(View, { className: clses.body, style: __rpx2vw__(_bodyStyle), onClick: onBodyClick }, children) : null, isValidArray(actions) ? /*#__PURE__*/React.createElement(View, { className: clses.footer, style: __rpx2vw__(footerStyle) }, actions) : null); }; Card.displayName = 'Card'; export default Card;