import React from 'react';
import PropTypes from 'prop-types';
import Select from '../../select';
import Radio from '../../radio';
class CardHeader extends React.PureComponent {
static propTypes = {
yearRange: PropTypes.arrayOf(PropTypes.number),
yearRangeOffset: PropTypes.number,
locale: PropTypes.object,
};
static defaultProps = {
yearRangeOffset: 10,
};
selectContainerHandler = target => {
return target.parentNode;
};
getYearSelect(year) {
const { prefix, yearRangeOffset, yearRange = [], locale } = this.props;
let [startYear, endYear] = yearRange;
if (!startYear || !endYear) {
startYear = year - yearRangeOffset;
endYear = year + yearRangeOffset;
}
const options = [];
for (let i = startYear; i <= endYear; i++) {
options.push(
{i}
,
);
}
return (
);
}
getMonthSelect(month) {
const { prefix, momentLocale, locale } = this.props;
const localeMonths = momentLocale.monthsShort();
const options = [];
for (let i = 0; i < 12; i++) {
options.push(
{localeMonths[i]}
,
);
}
return (
);
}
onYearChange = year => {
const { visibleMonth, changeVisibleMonth } = this.props;
changeVisibleMonth(visibleMonth.clone().year(year), 'yearSelect');
};
changeVisibleMonth = month => {
const { visibleMonth, changeVisibleMonth } = this.props;
changeVisibleMonth(visibleMonth.clone().month(month), 'monthSelect');
};
onModePanelChange = mode => {
this.props.changeMode(mode);
};
render() {
const { prefix, mode, locale, visibleMonth } = this.props;
const yearSelect = this.getYearSelect(visibleMonth.year());
const monthSelect =
mode === 'month' ? null : this.getMonthSelect(visibleMonth.month());
const panelSelect = (
{locale.month}
{locale.year}
);
return (
{yearSelect}
{monthSelect}
{panelSelect}
);
}
}
export default CardHeader;