Skip to content

Commit 524c28e

Browse files
committed
make sure datepicker selected date is valid
1 parent 0f968df commit 524c28e

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/lib/datepicker/calendar.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,13 @@ export class MdCalendar<D> implements AfterContentInit {
6161
@Input() startView: 'month' | 'year' = 'month';
6262

6363
/** The currently selected date. */
64-
@Input() selected: D;
64+
@Input() selected: D | null;
6565

6666
/** The minimum selectable date. */
67-
@Input() minDate: D;
67+
@Input() minDate: D | null;
6868

6969
/** The maximum selectable date. */
70-
@Input() maxDate: D;
70+
@Input() maxDate: D | null;
7171

7272
/** A function used to filter which dates are selectable. */
7373
@Input() dateFilter: (date: D) => boolean;
@@ -140,6 +140,7 @@ export class MdCalendar<D> implements AfterContentInit {
140140

141141
/** Handles date selection in the month view. */
142142
_dateSelected(date: D): void {
143+
console.log('date selected', date, this.selected);
143144
if (!this._dateAdapter.sameDate(date, this.selected)) {
144145
this.selectedChange.emit(date);
145146
}

src/lib/datepicker/datepicker.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,9 @@ export class MdDatepicker<D> implements OnDestroy {
161161
id = `md-datepicker-${datepickerUid++}`;
162162

163163
/** The currently selected date. */
164-
_selected: D | null = null;
164+
get _selected(): D | null { return this._validSelected; }
165+
set _selected(value: D | null) { this._validSelected = this._getValidDateOrNull(value); }
166+
private _validSelected: D | null = null;
165167

166168
/** The minimum selectable date. */
167169
get _minDate(): D | null {

0 commit comments

Comments
 (0)