UNPKG

chowa

Version:

UI component library based on React

53 lines (52 loc) 2.39 kB
/** * @license chowa v1.1.3 * * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn). * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const React = require("react"); const PropTypes = require("prop-types"); const classnames_1 = require("classnames"); const utils_1 = require("../utils"); const Card = (props) => { const { children, title, extras, description, bordered, shadow, media, actions, className, style } = props; const componentClass = classnames_1.default({ [utils_1.preClass('card')]: true, [utils_1.preClass('card-media')]: media, [utils_1.preClass('card-bordered')]: bordered, [utils_1.preClass('card-shadow')]: shadow, [className]: utils_1.isExist(className) }); return (React.createElement("section", { style: style, className: componentClass }, (utils_1.isExist(title) || utils_1.isExist(extras)) && React.createElement("div", { className: utils_1.preClass('card-header') }, React.createElement("div", { className: utils_1.preClass('card-title') }, title), utils_1.isExist(extras) && React.createElement("dl", { className: utils_1.preClass('card-extras-wrapper') }, extras.map((extra, key) => (React.createElement("dd", { className: utils_1.preClass('card-extra'), key: key }, extra))))), React.createElement("div", { className: utils_1.preClass('card-body') }, children), description && React.createElement("div", { className: utils_1.preClass('card-description') }, description), actions && actions.length > 0 && React.createElement("ul", { className: utils_1.preClass('card-actions') }, actions.map((action, index) => (React.createElement("li", { className: utils_1.preClass('card-action'), key: index }, action)))))); }; Card.propTypes = { className: PropTypes.string, style: PropTypes.object, title: PropTypes.string, extras: PropTypes.array, description: PropTypes.node, bordered: PropTypes.bool, shadow: PropTypes.bool, media: PropTypes.bool, actions: PropTypes.array }; Card.defaultProps = { bordered: false, shadow: false, media: false }; exports.default = Card;