All files / components/timeline timeline.jsx

46.15% Statements 6/13
16.67% Branches 1/6
33.33% Functions 1/3
46.15% Lines 6/13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42              1x 1x 1x                           1x                   1x     1x          
import React from 'react';
import TimeLabel from './timeline-label.jsx';
import TimelineItem from './timeline-item/timeline-item.jsx';
import PropTypes from 'prop-types';
 
class Timeline extends React.Component {
  render() {
    let timelineInfo = [];
    Eif (this.props.children) {
      timelineInfo = this.props.children;
    } else {
      this.props.timelineInfo.map((timelineElement, indx) => {
        if (timelineElement.endDate) {
          timelineInfo.push(<TimeLabel key={`label1${indx}`} theme="bg-red" content={timelineElement.endDate} />);
        }
        timelineElement.items.forEach((item, i) => {
          timelineInfo.push(<TimelineItem key={`item${indx}${i}`} icon={item.icon} iconTheme={item.iconTheme} time={item.time} header={item.header} body={item.body} footer={item.footer} />);
        });
        if (timelineElement.startDate) {
          timelineInfo.push(<TimeLabel key={`label2${indx}`} theme="bg-green" content={timelineElement.startDate} />);
        }
      });
    }
    return (
      <div className="col-md-12">
        <ul className="timeline">
          {timelineInfo}
          <li><i className="fa fa-clock-o bg-gray" /></li>
        </ul>
      </div>
    );
  }
}
Timeline.propTypes = {
  timelineInfo: PropTypes.array
};
Timeline.defaultProps = {
  timelineInfo: []
};
 
export default Timeline;