Skip to content

Commit 8b22991

Browse files
committed
allow to select out of month date in calendar
1 parent e23ec65 commit 8b22991

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

src/scripts/Datepicker.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ export default class Datepicker extends Component {
115115
}
116116

117117
onDateClick(date) {
118+
console.log('onDateClick', date);
118119
if (this.props.onSelect) {
119120
this.props.onSelect(date);
120121
}
@@ -123,6 +124,7 @@ export default class Datepicker extends Component {
123124
onDateFocus(date) {
124125
if (this.state.targetDate !== date) {
125126
setTimeout(() => {
127+
console.log('onDateFocus=>', date);
126128
this.setState({ targetDate: date });
127129
}, 10);
128130
}
@@ -251,15 +253,18 @@ export default class Datepicker extends Component {
251253
}
252254

253255
renderDate(cal, selectedDate, today, d, i) {
256+
let selectable = true;
254257
let enabled = d.year === cal.year && d.month === cal.month;
255258
if (cal.minDate) {
256259
const min = moment(d.value, 'YYYY-MM-DD')
257260
.isAfter(moment(cal.minDate.value, 'YYYY-MM-DD'));
261+
selectable = selectable && min;
258262
enabled = enabled && min;
259263
}
260264
if (cal.maxDate) {
261265
const max = moment(d.value, 'YYYY-MM-DD')
262266
.isBefore(moment(cal.maxDate.value, 'YYYY-MM-DD'));
267+
selectable = selectable && max;
263268
enabled = enabled && max;
264269
}
265270
const selected = d.value === selectedDate;
@@ -280,9 +285,9 @@ export default class Datepicker extends Component {
280285
>
281286
<span
282287
className='slds-day'
283-
tabIndex={ enabled ? 0 : -1 }
284-
onClick={ enabled ? this.onDateClick.bind(this, d.value) : null }
285-
onKeyDown={ enabled ? this.onDateKeyDown.bind(this, d.value) : null }
288+
tabIndex={ selectable ? 0 : -1 }
289+
onClick={ selectable ? this.onDateClick.bind(this, d.value) : null }
290+
onKeyDown={ selectable ? this.onDateKeyDown.bind(this, d.value) : null }
286291
onFocus={ enabled ? this.onDateFocus.bind(this, d.value) : cancelEvent }
287292
data-date-value={ d.value }
288293
>{ d.date }</span>

0 commit comments

Comments
 (0)