React Calender
by Kevin Mwangi
Babel + JSX
var calendar, endDay, firstDay, firstWeekDay, headerRow, i, j, lastWeekDay, len, len1, month, monthRange, row, startDate, week, weekRange, weeks, year,
indexOf = [].indexOf || function (item) {
for (var i = 0, l = this.length; i < l; i++) {
if (i in this && this[i] === item) return i;
}
return -1;
};
function get_calendar(year, month) {
startDate = moment([year, month]);
firstDay = moment(startDate).startOf('month');
endDay = moment(startDate).endOf('month');
monthRange = moment.range(firstDay, endDay);
weeks = [];
monthRange.by('days', function (moment) {
var ref;
if (ref = moment.week(), indexOf.call(weeks, ref) < 0) {
return weeks.push(moment.week());
}
});
// console.log('weeks', JSON.stringify(weeks))
calendar = [];
for (i = 0, len = weeks.length; i < len; i++) {
week = weeks[i];
if (i > 0 && week < weeks[i - 1]) {
// We have switched to the next year
firstWeekDay = moment([year, month]).add(1, "year").week(week).day(1);
lastWeekDay = moment([year, month]).add(1, "year").week(week).day(7);
}
else {
firstWeekDay = moment([year, month]).week(week).day(1);
lastWeekDay = moment([year, month]).week(week).day(7);
}
weekRange = moment.range(firstWeekDay, lastWeekDay);
calendar.push(weekRange);
}
return calendar;
}
var Calendar = React.createClass({
getDefaultProps: function () {
return {
date: moment()
}
},
getInitialState: function () {
// month = moment().month();
// year = moment().year();
return {
date: this.props.date,
month: moment().month(),
year: moment().year(),
calendar: this.getCalendar()
}
},
getCalendar: function () {
let month =...