chowa
Version:
UI component library based on React
53 lines (52 loc) • 2.39 kB
JavaScript
/**
* @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;