import React from 'react'; import ClassNames from 'classnames'; import Calendar from './Calendar'; import Dialog from '../dialog'; import style from './style'; import time from '../utils/time'; class CalendarDialog extends React.Component { static propTypes = { active: React.PropTypes.bool, className: React.PropTypes.string, maxDate: React.PropTypes.object, minDate: React.PropTypes.object, onDismiss: React.PropTypes.func, onSelect: React.PropTypes.func, value: React.PropTypes.object }; static defaultProps = { active: false, className: '', value: new Date() }; state = { date: this.props.value, display: 'months' }; handleCalendarChange = (value) => { const state = {display: 'months', date: value}; if (time.dateOutOfRange(value, this.props.minDate, this.props.maxDate)) { state.date = this.props.maxDate || this.props.minDate; } this.setState(state); }; handleSelect = (event) => { if (this.props.onSelect) this.props.onSelect(this.state.date, event); }; handleSwitchDisplay = (display) => { this.setState({ display }); }; actions = [ { label: 'Cancel', className: style.button, onClick: this.props.onDismiss }, { label: 'Ok', className: style.button, onClick: this.handleSelect } ]; render () { const display = `display-${this.state.display}`; const className = ClassNames(style.dialog, this.props.className); const headerClassName = ClassNames(style.header, style[display]); return (
{this.state.date.getFullYear()}

{time.getShortDayOfWeek(this.state.date.getDay())}, {time.getShortMonth(this.state.date)} {this.state.date.getDate()}

); } } export default CalendarDialog;