chowa
Version:
UI component library based on React
40 lines (39 loc) • 1.47 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.
*/
;
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 timeline_item_1 = require("./timeline-item");
const Timeline = (props) => {
const { children, className, style, mode } = props;
const componentClass = classnames_1.default({
[utils_1.preClass('timeline')]: true,
[utils_1.preClass('timeline-alternate')]: mode === 'alternate',
[className]: utils_1.isExist(className)
});
return (React.createElement("ul", { className: componentClass, style: style }, React.Children.map(children, (child, key) => {
if (!utils_1.isReactElement(child) || child.type !== timeline_item_1.default) {
return null;
}
return React.cloneElement(child, {
placement: mode === 'alternate'
? (key % 2 === 0 ? 'left' : 'right') : mode
});
})));
};
Timeline.propTypes = {
className: PropTypes.string,
style: PropTypes.object,
mode: PropTypes.oneOf(['left', 'right', 'alternate'])
};
Timeline.Item = timeline_item_1.default;
exports.default = Timeline;