UNPKG

rc-timeline

Version:
138 lines (130 loc) 3.86 kB
import _classCallCheck from 'babel-runtime/helpers/classCallCheck'; import _createClass from 'babel-runtime/helpers/createClass'; import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn'; import _inherits from 'babel-runtime/helpers/inherits'; import React, { Component } from 'react'; import classnames from 'classnames'; import moment from 'moment'; var styles = { 'rc-timeline': { width: '100%' }, 'rc-timeline-ul': { margin: 0, padding: 0, fontSize: 10 }, 'rc-timeline-li': { listStyleType: 'none', display: 'flex', alignItems: 'flex-start' }, 'rc-timeline-date': { minWidth: 43, textAlign: 'right' }, 'rc-timeline-item': { display: 'flex' }, 'rc-timeline-flow': { marginLeft: 10, marginRight: 10, marginTop: 2 }, 'rc-timeline-line': { borderLeft: '1px solid grey', height: '100%', marginLeft: 3 }, 'rc-timeline-title': { fontSize: 10, fontWeight: 'bold' }, 'rc-timeline-body': { marginTop: 2, fontSize: 10, marginBottom: 10 } }; var Timeline = function (_Component) { _inherits(Timeline, _Component); function Timeline() { _classCallCheck(this, Timeline); return _possibleConstructorReturn(this, (Timeline.__proto__ || Object.getPrototypeOf(Timeline)).apply(this, arguments)); } _createClass(Timeline, [{ key: 'render', value: function render() { var _props = this.props, data = _props.data, leftRender = _props.leftRender, rightRender = _props.rightRender; return React.createElement( 'div', { style: styles['rc-timeline'] }, React.createElement( 'ul', { style: styles['rc-timeline-ul'] }, data.map(function (item, index, array) { var iconStyle = { width: 7, height: 7, background: item.color || '#ff0000', borderRadius: '50%' }; var date = void 0; if (moment.isDate(item.date)) { date = moment(item.date); } else if (moment.isMoment(item.date)) { date = item.date; } return React.createElement( 'li', { style: styles['rc-timeline-li'], key: index.toString() }, leftRender ? leftRender(item.date) : React.createElement( 'div', { style: styles['rc-timeline-date'] }, React.createElement( 'div', null, date.format('DD MMM') ), React.createElement( 'div', null, date.format('HH:mm A') ) ), React.createElement( 'div', { style: styles['rc-timeline-item'] }, React.createElement( 'div', { style: styles['rc-timeline-flow'] }, React.createElement('div', { style: iconStyle }), index === array.length - 1 ? null : React.createElement('div', { style: styles['rc-timeline-line'] }) ), rightRender ? rightRender(item) : React.createElement( 'div', null, React.createElement( 'div', { style: styles['rc-timeline-title'] }, item.title ), React.createElement( 'div', { style: styles['rc-timeline-body'] }, item.body ) ) ) ); }) ) ); } }]); return Timeline; }(Component); export default Timeline;