Skip to content

Commit da045a6

Browse files
committed
make sure datepicker selected date is valid
1 parent 4c8ace2 commit da045a6

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
@@ -66,13 +66,13 @@ export class MdCalendar<D> implements AfterContentInit, OnDestroy {
6666
@Input() startView: 'month' | 'year' = 'month';
6767

6868
/** The currently selected date. */
69-
@Input() selected: D;
69+
@Input() selected: D | null;
7070

7171
/** The minimum selectable date. */
72-
@Input() minDate: D;
72+
@Input() minDate: D | null;
7373

7474
/** The maximum selectable date. */
75-
@Input() maxDate: D;
75+
@Input() maxDate: D | null;
7676

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

155155
/** Handles date selection in the month view. */
156156
_dateSelected(date: D): void {
157+
console.log('date selected', date, this.selected);
157158
if (!this._dateAdapter.sameDate(date, this.selected)) {
158159
this.selectedChange.emit(date);
159160
}

src/lib/datepicker/datepicker.ts

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

166166
/** The currently selected date. */
167-
_selected: D | null = null;
167+
get _selected(): D | null { return this._validSelected; }
168+
set _selected(value: D | null) { this._validSelected = this._getValidDateOrNull(value); }
169+
private _validSelected: D | null = null;
168170

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

0 commit comments

Comments
 (0)