var Axis = React.createClass({ topMargin: 2, markHeight: 5, render: function() { if (this.props.weeks.length === 0) { return null; } var renderMark = function(week, i) { var len = this.props.weeks.length, x = i/(len - 1)*this.props.width, showLabel, ta = (i === 0 // Text anchor for the leftmost label ? 'start' : (i === len - 1 // Text anchor for the rightmost label ? 'end' : 'middle')); // Text anchor for other labels // Thin out labels if (len > 20) { showLabel = (i % 3 === 0); } else if (len > 10) { showLabel = (i % 2 === 0); } else { showLabel = true; } return ( {!showLabel ? null : {formatDate(week)} } ); }.bind(this); return ( {this.props.weeks.map(renderMark)} ) } });