Skip to content

Commit

Permalink
feat(Calendar): support 0.x YearCellRender
Browse files Browse the repository at this point in the history
  • Loading branch information
myronliu347 committed Apr 26, 2019
1 parent c2d7db2 commit 1ee70af
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 1 deletion.
3 changes: 3 additions & 0 deletions src/calendar/calendar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ class Calendar extends Component {
* @returns {ReactNode}
*/
monthCellRender: PropTypes.func,
yearCellRender: PropTypes.func, // 兼容 0.x yearCellRender
/**
* 不可选择的日期
* @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
Expand Down Expand Up @@ -215,6 +216,7 @@ class Calendar extends Component {
locale,
dateCellRender,
monthCellRender,
yearCellRender,
disabledDate,
...others
} = this.props;
Expand Down Expand Up @@ -272,6 +274,7 @@ class Calendar extends Component {
locale,
dateCellRender,
monthCellRender,
yearCellRender,
disabledDate,
momentLocale: localeData,
today: this.today,
Expand Down
11 changes: 11 additions & 0 deletions src/calendar/range-calendar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,13 @@ class RangeCalendar extends React.Component {
* 自定义日期单元格渲染
*/
dateCellRender: PropTypes.func,
/**
* 自定义月份渲染函数
* @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
* @returns {ReactNode}
*/
monthCellRender: PropTypes.func,
yearCellRender: PropTypes.func, // 兼容 0.x yearCellRender
locale: PropTypes.object,
className: PropTypes.string,
};
Expand Down Expand Up @@ -214,6 +221,8 @@ class RangeCalendar extends React.Component {
prefix,
rtl,
dateCellRender,
monthCellRender,
yearCellRender,
className,
format,
locale,
Expand Down Expand Up @@ -269,6 +278,8 @@ class RangeCalendar extends React.Component {
today: this.today,
disabledDate,
dateCellRender,
monthCellRender,
yearCellRender,
changeMode: this.changeMode,
changeVisibleMonth: this.changeVisibleMonth,
};
Expand Down
4 changes: 3 additions & 1 deletion src/calendar/table/year-table.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class YearTable extends React.PureComponent {
disabledDate,
goPrevDecade,
goNextDecade,
yearCellRender,
} = this.props;
const currentYear = today.year();
const selectedYear = value ? value.year() : null;
Expand Down Expand Up @@ -53,13 +54,14 @@ class YearTable extends React.PureComponent {
content = <Icon type="arrow-right" size="xs" />;
} else {
year = startYear + counter++;
content = year;
title = year;
const yearDate = visibleMonth.clone().year(year);
isDisabled = isDisabledDate(yearDate, disabledDate, 'year');

!isDisabled &&
(onClick = this.onYearCellClick.bind(this, yearDate));

content = yearCellRender ? yearCellRender(yearDate) : year;
}

const isSelected = year === selectedYear;
Expand Down
3 changes: 3 additions & 0 deletions src/date-picker/date-picker.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ export default class DatePicker extends Component {
* @returns {ReactNode}
*/
monthCellRender: PropTypes.func,
yearCellRender: PropTypes.func, // 兼容 0.x yearCellRender
/**
* 日期输入框的 aria-label 属性
*/
Expand Down Expand Up @@ -472,6 +473,7 @@ export default class DatePicker extends Component {
inputProps,
dateCellRender,
monthCellRender,
yearCellRender,
dateInputAriaLabel,
timeInputAriaLabel,
...others
Expand Down Expand Up @@ -546,6 +548,7 @@ export default class DatePicker extends Component {
format={this.format}
dateCellRender={dateCellRender}
monthCellRender={monthCellRender}
yearCellRender={yearCellRender}
onSelect={this.onSelectCalendarPanel}
defaultVisibleMonth={defaultVisibleMonth}
onVisibleMonthChange={onVisibleMonthChange}
Expand Down
3 changes: 3 additions & 0 deletions src/date-picker/month-picker.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ class MonthPicker extends Component {
* @returns {ReactNode}
*/
monthCellRender: PropTypes.func,
yearCellRender: PropTypes.func, // 兼容 0.x yearCellRender
/**
* 日期输入框的 aria-label 属性
*/
Expand Down Expand Up @@ -321,6 +322,7 @@ class MonthPicker extends Component {
className,
inputProps,
monthCellRender,
yearCellRender,
dateInputAriaLabel,
...others
} = this.props;
Expand Down Expand Up @@ -380,6 +382,7 @@ class MonthPicker extends Component {
shape="panel"
modes={['month', 'year']}
monthCellRender={monthCellRender}
yearCellRender={yearCellRender}
value={value}
onSelect={this.onSelectCalendarPanel}
defaultVisibleMonth={defaultVisibleYear}
Expand Down
11 changes: 11 additions & 0 deletions src/date-picker/range-picker.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,13 @@ export default class RangePicker extends Component {
* 自定义日期单元格渲染
*/
dateCellRender: PropTypes.func,
/**
* 自定义月份渲染函数
* @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
* @returns {ReactNode}
*/
monthCellRender: PropTypes.func,
yearCellRender: PropTypes.func, // 兼容 0.x yearCellRender
/**
* 开始日期输入框的 aria-label 属性
*/
Expand Down Expand Up @@ -682,6 +689,8 @@ export default class RangePicker extends Component {
locale,
inputProps,
dateCellRender,
monthCellRender,
yearCellRender,
startDateInputAriaLabel,
startTimeInputAriaLabel,
endDateInputAriaLabel,
Expand Down Expand Up @@ -773,6 +782,8 @@ export default class RangePicker extends Component {
<RangeCalendar
showOtherMonth
dateCellRender={dateCellRender}
monthCellRender={monthCellRender}
yearCellRender={yearCellRender}
format={this.format}
defaultVisibleMonth={defaultVisibleMonth}
onVisibleMonthChange={onVisibleMonthChange}
Expand Down
3 changes: 3 additions & 0 deletions src/date-picker/year-picker.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ class YearPicker extends Component {
* 输入框其他属性
*/
inputProps: PropTypes.object,
yearCellRender: PropTypes.func, // 兼容 0.x yearCellRender
/**
* 日期输入框的 aria-label 属性
*/
Expand Down Expand Up @@ -310,6 +311,7 @@ class YearPicker extends Component {
className,
inputProps,
dateInputAriaLabel,
yearCellRender,
...others
} = this.props;

Expand Down Expand Up @@ -367,6 +369,7 @@ class YearPicker extends Component {
shape="panel"
modes={['year']}
value={value}
yearCellRender={yearCellRender}
onSelect={this.onSelectCalendarPanel}
disabledDate={disabledDate}
/>
Expand Down

0 comments on commit 1ee70af

Please sign in to comment.