import React, { Component, PropTypes } from 'react'; import time from '../utils/time.js'; import utils from '../utils/utils.js'; import CalendarDay from './CalendarDay.js'; class Month extends Component { static propTypes = { maxDate: PropTypes.object, minDate: PropTypes.object, onDayClick: PropTypes.func, selectedDate: PropTypes.object, theme: PropTypes.shape({ days: PropTypes.string, month: PropTypes.string, title: PropTypes.string, week: PropTypes.string }), viewDate: PropTypes.object }; handleDayClick = (day) => { if (this.props.onDayClick) this.props.onDayClick(day); }; renderWeeks () { return utils.range(0, 7).map(i => { return {time.getFullDayOfWeek(i).charAt(0)}; }); } renderDays () { return utils.range(1, time.getDaysInMonth(this.props.viewDate) + 1).map(i => { const date = new Date(this.props.viewDate.getFullYear(), this.props.viewDate.getMonth(), i); const disabled = time.dateOutOfRange(date, this.props.minDate, this.props.maxDate); return ( ); }); } render () { return (
{time.getFullMonth(this.props.viewDate)} {this.props.viewDate.getFullYear()}
{this.renderWeeks()}
{this.renderDays()}
); } } export default Month;