Skip to content

Commit 51c5418

Browse files
committed
fix(IgxMonthPicker): should not emit onSelection event when change years #7456
1 parent 630d24b commit 51c5418

File tree

2 files changed

+10
-50
lines changed

2 files changed

+10
-50
lines changed

projects/igniteui-angular/src/lib/calendar/month-picker/month-picker.component.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div *ngIf="isDefaultView" [@animateView]="activeView" (@animateView.done)="viewRendered($event)" class="igx-calendar__body" (swiperight)="previousYear()" (swipeleft)="nextYear()">
22
<div class="igx-calendar-picker">
3-
<div tabindex="0" class="igx-calendar-picker__prev" (click)="previousYear()" (keydown)="previousYearKB($event)" [ngStyle]="{
3+
<div tabindex="0" class="igx-calendar-picker__prev" (click)="previousYear()" (keydown)="changeYearKB($event, false)" [ngStyle]="{
44
'min-width.%': 25,
55
'left': 0
66
}">
@@ -11,7 +11,7 @@
1111
{{ formattedYear(viewDate) }}
1212
</span>
1313
</div>
14-
<div tabindex="0" class="igx-calendar-picker__next" (click)="nextYear()" (keydown)="nextYearKB($event)" [ngStyle]="{
14+
<div tabindex="0" class="igx-calendar-picker__next" (click)="nextYear()" (keydown)="changeYearKB($event)" [ngStyle]="{
1515
'min-width.%': 25,
1616
'right': 0
1717
}">

projects/igniteui-angular/src/lib/calendar/month-picker/month-picker.component.ts

Lines changed: 8 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -124,13 +124,11 @@ export class IgxMonthPickerComponent extends IgxMonthPickerBaseDirective {
124124
super.activeViewDecadeKB(event);
125125

126126
if (event.key === KEYS.RIGHT_ARROW || event.key === KEYS.RIGHT_ARROW_IE) {
127-
event.preventDefault();
128-
this.nextYear();
127+
this.nextYear(event);
129128
}
130129

131130
if (event.key === KEYS.LEFT_ARROW || event.key === KEYS.LEFT_ARROW_IE) {
132-
event.preventDefault();
133-
this.previousYear();
131+
this.previousYear(event);
134132
}
135133

136134
requestAnimationFrame(() => {
@@ -152,48 +150,10 @@ export class IgxMonthPickerComponent extends IgxMonthPickerBaseDirective {
152150
/**
153151
* @hidden
154152
*/
155-
public nextYear() {
156-
this.yearAction = 'next';
157-
this.previousViewDate = this.viewDate;
158-
this.viewDate = this.calendarModel.getNextYear(this.viewDate);
159-
160-
this.selectDate(this.viewDate);
161-
this.onSelection.emit(this.selectedDates);
162-
}
163-
164-
/**
165-
* @hidden
166-
*/
167-
public nextYearKB(event) {
168-
if (event.key === KEYS.SPACE || event.key === KEYS.SPACE_IE || event.key === KEYS.ENTER) {
169-
event.preventDefault();
170-
event.stopPropagation();
171-
172-
this.nextYear();
173-
}
174-
}
175-
176-
/**
177-
* @hidden
178-
*/
179-
public previousYear() {
180-
this.yearAction = 'prev';
181-
this.previousViewDate = this.viewDate;
182-
this.viewDate = this.calendarModel.getPrevYear(this.viewDate);
183-
184-
this.selectDate(this.viewDate);
185-
this.onSelection.emit(this.selectedDates);
186-
}
187-
188-
/**
189-
* @hidden
190-
*/
191-
public previousYearKB(event) {
153+
public changeYearKB(event, next = true) {
192154
if (event.key === KEYS.SPACE || event.key === KEYS.SPACE_IE || event.key === KEYS.ENTER) {
193-
event.preventDefault();
194155
event.stopPropagation();
195-
196-
this.previousYear();
156+
next ? this.nextYear(event) : this.previousYear(event);
197157
}
198158
}
199159

@@ -252,8 +212,8 @@ export class IgxMonthPickerComponent extends IgxMonthPickerBaseDirective {
252212
* @hidden
253213
*/
254214
@HostListener('keydown.pageup', ['$event'])
255-
public onKeydownPageUp(event: KeyboardEvent) {
256-
event.preventDefault();
215+
public previousYear(event?: KeyboardEvent) {
216+
event?.preventDefault();
257217
this.yearAction = 'prev';
258218
this.previousViewDate = this.viewDate;
259219
this.viewDate = this.calendarModel.getPrevYear(this.viewDate);
@@ -263,8 +223,8 @@ export class IgxMonthPickerComponent extends IgxMonthPickerBaseDirective {
263223
* @hidden
264224
*/
265225
@HostListener('keydown.pagedown', ['$event'])
266-
public onKeydownPageDown(event: KeyboardEvent) {
267-
event.preventDefault();
226+
public nextYear(event?: KeyboardEvent) {
227+
event?.preventDefault();
268228
this.yearAction = 'next';
269229
this.previousViewDate = this.viewDate;
270230
this.viewDate = this.calendarModel.getNextYear(this.viewDate);

0 commit comments

Comments
 (0)