From a06bf931af0f8ae773312977a9925b05a2800b63 Mon Sep 17 00:00:00 2001 From: Shuo Feng Date: Mon, 30 Jan 2017 14:59:14 -0500 Subject: [PATCH 1/3] add more languages, update README accordingly --- README.md | 4 +-- lib/DateRange.js | 2 +- lib/LangDic.js | 91 ++++++++++++++++++++++++++++++++++++++++-------- src/LangDic.js | 91 ++++++++++++++++++++++++++++++++++++++++-------- 4 files changed, 157 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 1e31dd3b8..927b678c3 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ class MyComponent extends Component { * **onChange:** *(Function)* default: none * **minDate:** *(String, Moment.js object, Function)* default: none * **maxDate:** *(String, Moment.js object, Function)* default: none -* **lang:** *(String, 'cn' or 'jp' for Chinese or Japanese)* default: none +* **lang:** *(String, 'cn' - Chinese, 'jp' - Japanese, 'fr' - French, 'it' - Italian, 'de' - German)* default: none ### Range Picker ```javascript @@ -93,4 +93,4 @@ class MyComponent extends Component { * **maxDate:** *(String, Moment.js object, Function)* default: none * **twoStepChange:** *(Boolean)* default: false * **rangedCalendars** *(Boolean)* default: false -* **lang:** *(String, 'cn' or 'jp' for Chinese or Japanese)* default: none +* **lang:** *(String, 'cn' - Chinese, 'jp' - Japanese, 'fr' - French, 'it' - Italian, 'de' - German)* default: none diff --git a/lib/DateRange.js b/lib/DateRange.js index 19de82476..2a3055b0a 100644 --- a/lib/DateRange.js +++ b/lib/DateRange.js @@ -273,4 +273,4 @@ DateRange.propTypes = { }; exports['default'] = DateRange; -module.exports = exports['default']; +module.exports = exports['default']; \ No newline at end of file diff --git a/lib/LangDic.js b/lib/LangDic.js index 7bb4dee8d..7139863b2 100644 --- a/lib/LangDic.js +++ b/lib/LangDic.js @@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); exports['default'] = { - 'cn': { // chinese + 'cn': { // Chinese 'january': '一月', 'february': '二月', 'march': '三月', @@ -25,19 +25,19 @@ exports['default'] = { 'fr': '五', 'sa': '六' }, - 'jp': { // japanese - 'january': 'むつき', - 'february': 'きさらぎ', - 'march': 'やよい', - 'april': 'うづき', - 'may': 'さつき', - 'june': 'みなづき', - 'july': 'ふみづき', - 'august': 'はづき', - 'september': 'ながつき', - 'october': 'かんなづき', - 'november': 'しもつき', - 'december': 'しわす', + 'jp': { // Japanese + 'january': '1月', + 'february': '2月', + 'march': '3月', + 'april': '4月', + 'may': '5月', + 'june': '6月', + 'july': '7月', + 'august': '8月', + 'september': '9月', + 'october': '10月', + 'november': '11月', + 'december': '12月', 'su': '日', 'mo': '月', 'tu': '火', @@ -45,6 +45,69 @@ exports['default'] = { 'th': '木', 'fr': '金', 'sa': '土' + }, + 'fr': { // French + 'january': 'janvier', + 'february': 'février', + 'march': 'mars', + 'april': 'avril', + 'may': 'mai', + 'june': 'juin', + 'july': 'juillet', + 'august': 'août', + 'september': 'septembre', + 'october': 'octobre', + 'november': 'novembre', + 'december': 'décembre', + 'su': 'Dimanche', + 'mo': 'Lundi', + 'tu': 'Mardi', + 'we': 'Mercredi', + 'th': 'Jeudi', + 'fr': 'Vendredi', + 'sa': 'Samedi' + }, + 'it': { // Italian + 'january': 'gennaio', + 'february': 'febbraio', + 'march': 'marzo', + 'april': 'aprile', + 'may': 'maggio', + 'june': 'giugno', + 'july': 'luglio', + 'august': 'agosto', + 'september': 'settembre', + 'october': 'ottobre', + 'november': 'novembre', + 'december': 'dicembre', + 'su': 'Domenica', + 'mo': 'Lunedì', + 'tu': 'Mardi', + 'we': 'Mercoledì', + 'th': 'Giovedì', + 'fr': 'Venerdì', + 'sa': 'Sabato' + }, + 'de': { // German + 'january': 'Januar', + 'february': 'Februar', + 'march': 'März', + 'april': 'April', + 'may': 'Mai', + 'june': 'Juni', + 'july': 'Juli', + 'august': 'August', + 'september': 'September', + 'october': 'Oktober', + 'november': 'November', + 'december': 'Dezember', + 'su': 'Sonntag', + 'mo': 'Montag', + 'tu': 'Dienstag', + 'we': 'Mittwoch', + 'th': 'Donnerstag', + 'fr': 'Freitag', + 'sa': 'Samstag' } }; module.exports = exports['default']; \ No newline at end of file diff --git a/src/LangDic.js b/src/LangDic.js index 80fdd19ca..68dcec0fb 100644 --- a/src/LangDic.js +++ b/src/LangDic.js @@ -1,5 +1,5 @@ export default { - 'cn' : { // chinese + 'cn' : { // Chinese 'january':'一月', 'february':'二月', 'march':'三月', @@ -20,19 +20,19 @@ export default { 'fr':'五', 'sa':'六' }, - 'jp' : { // japanese - 'january':'むつき', - 'february':'きさらぎ', - 'march':'やよい', - 'april':'うづき', - 'may':'さつき', - 'june':'みなづき', - 'july':'ふみづき', - 'august':'はづき', - 'september':'ながつき', - 'october':'かんなづき', - 'november':'しもつき', - 'december':'しわす', + 'jp' : { // Japanese + 'january':'1月', + 'february':'2月', + 'march':'3月', + 'april':'4月', + 'may':'5月', + 'june':'6月', + 'july':'7月', + 'august':'8月', + 'september':'9月', + 'october':'10月', + 'november':'11月', + 'december':'12月', 'su':'日', 'mo':'月', 'tu':'火', @@ -40,5 +40,68 @@ export default { 'th':'木', 'fr':'金', 'sa':'土' + }, + 'fr' : { // French + 'january':'janvier', + 'february':'février', + 'march':'mars', + 'april':'avril', + 'may':'mai', + 'june':'juin', + 'july':'juillet', + 'august':'août', + 'september':'septembre', + 'october':'octobre', + 'november':'novembre', + 'december':'décembre', + 'su':'Dimanche', + 'mo':'Lundi', + 'tu':'Mardi', + 'we':'Mercredi', + 'th':'Jeudi', + 'fr':'Vendredi', + 'sa':'Samedi' + }, + 'it' : { // Italian + 'january':'gennaio', + 'february':'febbraio', + 'march':'marzo', + 'april':'aprile', + 'may':'maggio', + 'june':'giugno', + 'july':'luglio', + 'august':'agosto', + 'september':'settembre', + 'october':'ottobre', + 'november':'novembre', + 'december':'dicembre', + 'su':'Domenica', + 'mo':'Lunedì', + 'tu':'Mardi', + 'we':'Mercoledì', + 'th':'Giovedì', + 'fr':'Venerdì', + 'sa':'Sabato' + }, + 'de' : { // German + 'january':'Januar', + 'february':'Februar', + 'march':'März', + 'april':'April', + 'may':'Mai', + 'june':'Juni', + 'july':'Juli', + 'august':'August', + 'september':'September', + 'october':'Oktober', + 'november':'November', + 'december':'Dezember', + 'su':'Sonntag', + 'mo':'Montag', + 'tu':'Dienstag', + 'we':'Mittwoch', + 'th':'Donnerstag', + 'fr':'Freitag', + 'sa':'Samstag' } } From b03bbb8dd30b8ffa4990b469be224b0c950d9d73 Mon Sep 17 00:00:00 2001 From: beeant Date: Mon, 13 Feb 2017 16:38:15 +0900 Subject: [PATCH 2/3] Colorful Special Days --- lib/Calendar.js | 24 +++++++++++++------- lib/DateRange.js | 7 ++++-- lib/DayCell.js | 57 ++++++++++++++++++++++++++---------------------- lib/styles.js | 6 ++++- src/Calendar.js | 10 +++++++-- src/DateRange.js | 9 +++++--- src/DayCell.js | 8 +++++-- src/styles.js | 5 +++++ 8 files changed, 82 insertions(+), 44 deletions(-) diff --git a/lib/Calendar.js b/lib/Calendar.js index 06d9dfe41..8d0262644 100644 --- a/lib/Calendar.js +++ b/lib/Calendar.js @@ -237,13 +237,15 @@ var Calendar = (function (_Component) { // TODO: Split this logic into smaller chunks var styles = this.styles; - var _props6 = this.props; - var range = _props6.range; - var minDate = _props6.minDate; - var maxDate = _props6.maxDate; - var format = _props6.format; - var onlyClasses = _props6.onlyClasses; - var disableDaysBeforeToday = _props6.disableDaysBeforeToday; + var _props6 = this.props, + range = _props6.range, + minDate = _props6.minDate, + maxDate = _props6.maxDate, + format = _props6.format, + onlyClasses = _props6.onlyClasses, + disableDaysBeforeToday = _props6.disableDaysBeforeToday, + specialDays = _props6.specialDays; + var shownDate = this.getShownDate(); var _state = this.state; @@ -303,6 +305,9 @@ var Calendar = (function (_Component) { var isEdge = isStartEdge || isEndEdge; var isToday = today.isSame(dayMoment); var isSunday = dayMoment.day() === 0; + var isSpecialDay = specialDays && specialDays.some(function (specialDay) { + return dayMoment.endOf('day').isSame(specialDay.date.endOf('day')); + }); var isOutsideMinMax = isOusideMinMax(dayMoment, minDate, maxDate, format); return _react2['default'].createElement(_DayCellJs2['default'], _extends({ @@ -314,6 +319,7 @@ var Calendar = (function (_Component) { isSelected: isSelected || isEdge, isInRange: isInRange, isSunday: isSunday, + isSpecialDay: isSpecialDay, isToday: isToday, key: index, isPassive: isPassive || isOutsideMinMax, @@ -363,7 +369,8 @@ Calendar.defaultProps = { showMonthArrow: true, disableDaysBeforeToday: false, onlyClasses: false, - classNames: {} + classNames: {}, + specialDays: [] }; Calendar.propTypes = { @@ -389,6 +396,7 @@ Calendar.propTypes = { linkCB: _react.PropTypes.func, theme: _react.PropTypes.object, onlyClasses: _react.PropTypes.bool, + specialDays: _react.PropTypes.array, classNames: _react.PropTypes.object, locale: _react.PropTypes.string }; diff --git a/lib/DateRange.js b/lib/DateRange.js index 2a3055b0a..721a5ff8b 100644 --- a/lib/DateRange.js +++ b/lib/DateRange.js @@ -191,6 +191,7 @@ var DateRange = (function (_Component) { var monthsDiff = range.endDate.month() - range.startDate.month(); var diff = yearsDiff * 12 + monthsDiff; var calendarsCount = Number(calendars) - 1; + var specialDays = _props.specialDays; return _react2['default'].createElement( 'div', @@ -227,6 +228,7 @@ var DateRange = (function (_Component) { minDate: minDate, maxDate: maxDate, onlyClasses: onlyClasses, + specialDays: specialDays, classNames: classes, onChange: _this.handleSelect.bind(_this) })); } @@ -247,6 +249,7 @@ DateRange.defaultProps = { onlyClasses: false, offsetPositive: false, classNames: {}, + specialDays: [], rangedCalendars: false, twoStepChange: false }; @@ -267,10 +270,10 @@ DateRange.propTypes = { onInit: _react.PropTypes.func, onChange: _react.PropTypes.func, onlyClasses: _react.PropTypes.bool, + specialDays: _react.PropTypes.array, offsetPositive: _react.PropTypes.bool, classNames: _react.PropTypes.object, rangedCalendars: _react.PropTypes.bool }; -exports['default'] = DateRange; -module.exports = exports['default']; \ No newline at end of file +exports.default = DateRange; diff --git a/lib/DayCell.js b/lib/DayCell.js index dbd0e8c78..f60b36ceb 100644 --- a/lib/DayCell.js +++ b/lib/DayCell.js @@ -83,20 +83,22 @@ var DayCell = (function (_Component) { }, { key: 'getStateStyles', value: function getStateStyles() { - var _state = this.state; - var hover = _state.hover; - var active = _state.active; - var _props = this.props; - var isSelected = _props.isSelected; - var isInRange = _props.isInRange; - var isPassive = _props.isPassive; - var isStartEdge = _props.isStartEdge; - var isEndEdge = _props.isEndEdge; - var dayMoment = _props.dayMoment; - var isToday = _props.isToday; - var isSunday = _props.isSunday; + var _state = this.state, + hover = _state.hover, + active = _state.active; + var _props = this.props, + isSelected = _props.isSelected, + isInRange = _props.isInRange, + isPassive = _props.isPassive, + isStartEdge = _props.isStartEdge, + isEndEdge = _props.isEndEdge, + dayMoment = _props.dayMoment, + isToday = _props.isToday, + isSunday = _props.isSunday, + isSpecialDay = _props.isSpecialDay; var styles = this.styles; + var hoverStyle = hover ? styles['DayHover'] : {}; var activeStyle = active ? styles['DayActive'] : {}; var passiveStyle = isPassive ? styles['DayPassive'] : {}; @@ -106,32 +108,35 @@ var DayCell = (function (_Component) { var inRangeStyle = isInRange ? styles['DayInRange'] : {}; var todayStyle = isToday ? styles['DayToday'] : {}; var sundayStyle = isSunday ? styles['DaySunday'] : {}; + var specialDayStyle = isSpecialDay ? styles['DaySpecialDay'] : {}; - return _extends({}, todayStyle, sundayStyle, inRangeStyle, hoverStyle, passiveStyle, activeStyle, selectedStyle, startEdgeStyle, endEdgeStyle); + return _extends({}, todayStyle, sundayStyle, specialDayStyle, inRangeStyle, hoverStyle, passiveStyle, activeStyle, selectedStyle, startEdgeStyle, endEdgeStyle); } }, { key: 'getClassNames', value: function getClassNames(classes) { var _classnames; - var _props2 = this.props; - var isSelected = _props2.isSelected; - var isInRange = _props2.isInRange; - var isPassive = _props2.isPassive; - var isStartEdge = _props2.isStartEdge; - var isEndEdge = _props2.isEndEdge; - var isToday = _props2.isToday; - var isSunday = _props2.isSunday; + var _props2 = this.props, + isSelected = _props2.isSelected, + isInRange = _props2.isInRange, + isPassive = _props2.isPassive, + isStartEdge = _props2.isStartEdge, + isEndEdge = _props2.isEndEdge, + isToday = _props2.isToday, + isSunday = _props2.isSunday, + isSpecialDay = _props2.isSpecialDay; + - return (0, _classnames3['default'])((_classnames = {}, _defineProperty(_classnames, classes.day, true), _defineProperty(_classnames, classes.dayActive, isSelected), _defineProperty(_classnames, classes.dayPassive, isPassive), _defineProperty(_classnames, classes.dayInRange, isInRange), _defineProperty(_classnames, classes.dayStartEdge, isStartEdge), _defineProperty(_classnames, classes.dayEndEdge, isEndEdge), _defineProperty(_classnames, classes.dayToday, isToday), _defineProperty(_classnames, classes.daySunday, isSunday), _classnames)); + return (0, _classnames3.default)((_classnames = {}, _defineProperty(_classnames, classes.day, true), _defineProperty(_classnames, classes.dayActive, isSelected), _defineProperty(_classnames, classes.dayPassive, isPassive), _defineProperty(_classnames, classes.dayInRange, isInRange), _defineProperty(_classnames, classes.dayStartEdge, isStartEdge), _defineProperty(_classnames, classes.dayEndEdge, isEndEdge), _defineProperty(_classnames, classes.dayToday, isToday), _defineProperty(_classnames, classes.daySunday, isSunday), _defineProperty(_classnames, classes.daySpecialDay, isSpecialDay), _classnames)); } }, { key: 'render', value: function render() { - var _props3 = this.props; - var dayMoment = _props3.dayMoment; - var onlyClasses = _props3.onlyClasses; - var classNames = _props3.classNames; + var _props3 = this.props, + dayMoment = _props3.dayMoment, + onlyClasses = _props3.onlyClasses, + classNames = _props3.classNames; var styles = this.styles; var stateStyle = this.getStateStyles(); diff --git a/lib/styles.js b/lib/styles.js index 48887f491..98928edbd 100644 --- a/lib/styles.js +++ b/lib/styles.js @@ -26,7 +26,8 @@ var defaultClasses = { month: 'rdr-MonthAndYear-month', monthAndYearDivider: 'rdr-MonthAndYear-divider', year: 'rdr-MonthAndYear-year', - daySunday: 'rdr-Sunday' + daySunday: 'rdr-Sunday', + daySpecialDay: 'rdr-SpecialDay' }; exports.defaultClasses = defaultClasses; @@ -72,6 +73,8 @@ var defaultTheme = { DaySunday: {}, + DaySpecialDay: {}, + DayActive: { background: '#95a5a6', color: '#ffffff', @@ -207,6 +210,7 @@ exports['default'] = function () { DayToday: _extends({}, defaultTheme.DayToday, customTheme.DayToday), DaySunday: _extends({}, defaultTheme.DaySunday, customTheme.DaySunday), + DaySpecialDay: _extends({}, defaultTheme.DaySpecialDay, customTheme.DaySpecialDay), DayActive: _extends({}, defaultTheme.DayActive, customTheme.DayActive), diff --git a/src/Calendar.js b/src/Calendar.js index b955389b8..e01f35c5c 100644 --- a/src/Calendar.js +++ b/src/Calendar.js @@ -162,7 +162,7 @@ class Calendar extends Component { // TODO: Split this logic into smaller chunks const { styles } = this; - const { range, minDate, maxDate, format, onlyClasses, disableDaysBeforeToday } = this.props; + const { range, minDate, maxDate, format, onlyClasses, disableDaysBeforeToday, specialDays } = this.props; const shownDate = this.getShownDate(); const { date, firstDayOfWeek } = this.state; @@ -217,6 +217,9 @@ class Calendar extends Component { const isEdge = isStartEdge || isEndEdge; const isToday = today.isSame(dayMoment); const isSunday = dayMoment.day() === 0; + const isSpecialDay = specialDays && specialDays.some((specialDay) => { + return dayMoment.endOf('day').isSame(specialDay.date.endOf('day')); + }); const isOutsideMinMax = isOusideMinMax(dayMoment, minDate, maxDate, format); return ( @@ -229,6 +232,7 @@ class Calendar extends Component { isSelected={ isSelected || isEdge } isInRange={ isInRange } isSunday={ isSunday } + isSpecialDay={ isSpecialDay } isToday={ isToday } key={ index } isPassive = { isPassive || isOutsideMinMax } @@ -261,7 +265,8 @@ Calendar.defaultProps = { showMonthArrow: true, disableDaysBeforeToday: false, onlyClasses : false, - classNames : {} + classNames : {}, + specialDays : [], } Calendar.propTypes = { @@ -287,6 +292,7 @@ Calendar.propTypes = { linkCB : PropTypes.func, theme : PropTypes.object, onlyClasses : PropTypes.bool, + specialDays : PropTypes.array, classNames : PropTypes.object, locale : PropTypes.string } diff --git a/src/DateRange.js b/src/DateRange.js index 33d24b328..4edba4075 100644 --- a/src/DateRange.js +++ b/src/DateRange.js @@ -108,7 +108,7 @@ class DateRange extends Component { } render() { - const { ranges, format, linkedCalendars, style, calendars, firstDayOfWeek, minDate, maxDate, classNames, onlyClasses, lang, disableDaysBeforeToday, offsetPositive, shownDate, showMonthArrow, rangedCalendars } = this.props; + const { ranges, format, linkedCalendars, style, calendars, firstDayOfWeek, minDate, maxDate, classNames, onlyClasses, specialDays, lang, disableDaysBeforeToday, offsetPositive, shownDate, showMonthArrow, rangedCalendars } = this.props; const { range, link } = this.state; const { styles } = this; @@ -131,7 +131,7 @@ class DateRange extends Component { classNames={ classes } /> )} - {()=>{ + {(()=>{ const _calendars = []; const _method = offsetPositive ? 'unshift' : 'push'; for (var i = calendarsCount; i >= 0; i--) { @@ -156,12 +156,13 @@ class DateRange extends Component { minDate={ minDate } maxDate={ maxDate } onlyClasses={ onlyClasses } + specialDays={ specialDays } classNames={ classes } onChange={ this.handleSelect.bind(this) } /> ); } return _calendars; - }()} + })()} ); } @@ -175,6 +176,7 @@ DateRange.defaultProps = { onlyClasses : false, offsetPositive : false, classNames : {}, + specialDays : [], rangedCalendars : false, twoStepChange : false, } @@ -195,6 +197,7 @@ DateRange.propTypes = { onInit : PropTypes.func, onChange : PropTypes.func, onlyClasses : PropTypes.bool, + specialDays : PropTypes.array, offsetPositive : PropTypes.bool, classNames : PropTypes.object, rangedCalendars : PropTypes.bool, diff --git a/src/DayCell.js b/src/DayCell.js index c56b95727..e498f1062 100644 --- a/src/DayCell.js +++ b/src/DayCell.js @@ -52,7 +52,7 @@ class DayCell extends Component { getStateStyles() { const { hover, active } = this.state; - const { isSelected, isInRange, isPassive, isStartEdge, isEndEdge, dayMoment, isToday, isSunday } = this.props; + const { isSelected, isInRange, isPassive, isStartEdge, isEndEdge, dayMoment, isToday, isSunday, isSpecialDay } = this.props; const { styles } = this; const hoverStyle = hover ? styles['DayHover'] : {}; @@ -64,10 +64,12 @@ class DayCell extends Component { const inRangeStyle = isInRange ? styles['DayInRange'] : {}; const todayStyle = isToday ? styles['DayToday'] : {}; const sundayStyle = isSunday ? styles['DaySunday'] : {}; + const specialDayStyle = isSpecialDay ? styles['DaySpecialDay'] : {}; return { ...todayStyle, ...sundayStyle, + ...specialDayStyle, ...inRangeStyle, ...hoverStyle, ...passiveStyle, @@ -79,7 +81,7 @@ class DayCell extends Component { } getClassNames(classes) { - const { isSelected, isInRange, isPassive, isStartEdge, isEndEdge, isToday, isSunday } = this.props; + const { isSelected, isInRange, isPassive, isStartEdge, isEndEdge, isToday, isSunday, isSpecialDay } = this.props; return classnames({ [classes.day] : true, @@ -90,6 +92,7 @@ class DayCell extends Component { [classes.dayEndEdge] : isEndEdge, [classes.dayToday] : isToday, [classes.daySunday]: isSunday, + [classes.daySpecialDay]: isSpecialDay, }); } @@ -139,6 +142,7 @@ DayCell.propTypes = { Day : PropTypes.object.isRequired }).isRequired, onlyClasses : PropTypes.bool, + isSpecialDay: PropTypes.bool, classNames : PropTypes.object } diff --git a/src/styles.js b/src/styles.js index 898ea2869..f292b2be9 100644 --- a/src/styles.js +++ b/src/styles.js @@ -19,6 +19,7 @@ export const defaultClasses = { monthAndYearDivider : 'rdr-MonthAndYear-divider', year : 'rdr-MonthAndYear-year', daySunday : 'rdr-Sunday', + daySpecialDay : 'rdr-SpecialDay', }; const defaultTheme = { @@ -65,6 +66,9 @@ const defaultTheme = { DaySunday: { }, + DaySpecialDay: { + }, + DayActive : { background : '#95a5a6', color : '#ffffff', @@ -203,6 +207,7 @@ export default (customTheme = {}) => { DayToday : { ...defaultTheme.DayToday, ...customTheme.DayToday }, DaySunday: { ...defaultTheme.DaySunday, ...customTheme.DaySunday }, + DaySpecialDay: { ...defaultTheme.DaySpecialDay, ...customTheme.DaySpecialDay }, DayActive : { ...defaultTheme.DayActive, ...customTheme.DayActive }, From 67bbc56fe76c5bffe87a7ab7bc6fc85eb2eb73c7 Mon Sep 17 00:00:00 2001 From: beeant Date: Mon, 13 Feb 2017 20:32:06 +0900 Subject: [PATCH 3/3] bug fix: update calendar shownDate --- lib/Calendar.js | 5 +++-- src/Calendar.js | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/Calendar.js b/lib/Calendar.js index 8d0262644..09568a3b9 100644 --- a/lib/Calendar.js +++ b/lib/Calendar.js @@ -103,8 +103,9 @@ var Calendar = (function (_Component) { value: function componentWillReceiveProps(nextProps) { var range = nextProps.range; var offset = nextProps.offset; + var oldRange = this.props.range; - if (range && range['endDate'] && !range['endDate'].isSame(range['startDate'], 'day')) { + if ((range && range['endDate'] && !range['endDate'].isSame(range['startDate'], "day")) || (oldRange && !oldRange["startDate"].isSame(range["startDate"]))) { this.setState({ shownDate: range['endDate'].clone().add(offset, 'months') }); } } @@ -402,4 +403,4 @@ Calendar.propTypes = { }; exports['default'] = Calendar; -module.exports = exports['default']; \ No newline at end of file +module.exports = exports['default']; diff --git a/src/Calendar.js b/src/Calendar.js index e01f35c5c..097cf33c8 100644 --- a/src/Calendar.js +++ b/src/Calendar.js @@ -60,8 +60,9 @@ class Calendar extends Component { componentWillReceiveProps(nextProps) { const { range, offset } = nextProps; + const oldRange = this.props.oldRange; - if(range && range['endDate'] && !range['endDate'].isSame(range['startDate'], 'day')) { + if ((range && range['endDate'] && !range['endDate'].isSame(range['startDate'], "day")) || (oldRange && !oldRange["startDate"].isSame(range["startDate"]))) { this.setState({ shownDate : range['endDate'].clone().add(offset, 'months') }) } }