React calendar component inspired by CLNDR.js.
$ npm install react-calendar-component
Note: the npm name is react-calendar-component
!
This is a low-level component for rendering monthly calendars using React. The
component will call renderDay
and renderHeader
functions provided by you to
make a calendar for the month of the given Date
. Very basic default
implementations are provided for both, but they can be overridden to fit your
use case. This
example
shows how to create a regular grid calendar.
http://hanse.github.io/react-calendar/
import React, { Component } from 'react';
import { render } from 'react-dom';
import { Calendar } from 'react-calendar-component';
import moment from 'moment';
import 'moment/locale/nb';
class CalendarExample extends Component {
state = {
date: moment()
};
render() {
return (
<Calendar
onChangeMonth={date => this.setState({ date })}
date={this.state.date}
onPickDate={date => console.log(date)}
renderDay={({ day, classNames, onPickDate }) => (
<div
key={day.format()}
className={cx(
'Calendar-grid-item',
day.isSame(moment(), 'day') && 'Calendar-grid-item--current',
classNames
)}
onClick={e => onPickDate(day)}
>
{day.format('D')}
</div>
)}
renderHeader={({ date, onPrevMonth, onNextMonth }) => (
<div className="Calendar-header">
<button onClick={onPrevMonth}>«</button>
<div className="Calendar-header-currentDate">
{date.format('MMMM YYYY')}
</div>
<button onClick={onNextMonth}>»</button>
</div>
)}
/>
);
}
}
render(<CalendarExample />, document.getElementById('calendar'));
MIT