Skip to content

Commit 80bec3b

Browse files
committed
fix(IgxMonthPicker): should not emit onSelection event when change years #7456
1 parent ee976ca commit 80bec3b

File tree

2 files changed

+10
-48
lines changed

2 files changed

+10
-48
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" 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 & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -110,13 +110,11 @@ export class IgxMonthPickerComponent extends IgxMonthPickerBaseDirective {
110110
super.activeViewDecadeKB(event);
111111

112112
if (event.key === KEYS.RIGHT_ARROW || event.key === KEYS.RIGHT_ARROW_IE) {
113-
event.preventDefault();
114-
this.nextYear();
113+
this.nextYear(event);
115114
}
116115

117116
if (event.key === KEYS.LEFT_ARROW || event.key === KEYS.LEFT_ARROW_IE) {
118-
event.preventDefault();
119-
this.previousYear();
117+
this.previousYear(event);
120118
}
121119

122120
requestAnimationFrame(() => {
@@ -138,46 +136,10 @@ export class IgxMonthPickerComponent extends IgxMonthPickerBaseDirective {
138136
/**
139137
* @hidden
140138
*/
141-
public nextYear() {
142-
this.yearAction = 'next';
143-
this.viewDate = this.calendarModel.getNextYear(this.viewDate);
144-
145-
this.selectDate(this.viewDate);
146-
this.onSelection.emit(this.selectedDates);
147-
}
148-
149-
/**
150-
* @hidden
151-
*/
152-
public nextYearKB(event) {
153-
if (event.key === KEYS.SPACE || event.key === KEYS.SPACE_IE || event.key === KEYS.ENTER) {
154-
event.preventDefault();
155-
event.stopPropagation();
156-
157-
this.nextYear();
158-
}
159-
}
160-
161-
/**
162-
* @hidden
163-
*/
164-
public previousYear() {
165-
this.yearAction = 'prev';
166-
this.viewDate = this.calendarModel.getPrevYear(this.viewDate);
167-
168-
this.selectDate(this.viewDate);
169-
this.onSelection.emit(this.selectedDates);
170-
}
171-
172-
/**
173-
* @hidden
174-
*/
175-
public previousYearKB(event) {
139+
public changeYearKB(event, next = true) {
176140
if (event.key === KEYS.SPACE || event.key === KEYS.SPACE_IE || event.key === KEYS.ENTER) {
177-
event.preventDefault();
178141
event.stopPropagation();
179-
180-
this.previousYear();
142+
next ? this.nextYear(event) : this.previousYear(event);
181143
}
182144
}
183145

@@ -235,8 +197,8 @@ export class IgxMonthPickerComponent extends IgxMonthPickerBaseDirective {
235197
* @hidden
236198
*/
237199
@HostListener('keydown.pageup', ['$event'])
238-
public onKeydownPageUp(event: KeyboardEvent) {
239-
event.preventDefault();
200+
public previousYear(event?: KeyboardEvent) {
201+
event?.preventDefault();
240202
this.yearAction = 'prev';
241203
this.viewDate = this.calendarModel.getPrevYear(this.viewDate);
242204
}
@@ -245,8 +207,8 @@ export class IgxMonthPickerComponent extends IgxMonthPickerBaseDirective {
245207
* @hidden
246208
*/
247209
@HostListener('keydown.pagedown', ['$event'])
248-
public onKeydownPageDown(event: KeyboardEvent) {
249-
event.preventDefault();
210+
public nextYear(event?: KeyboardEvent) {
211+
event?.preventDefault();
250212
this.yearAction = 'next';
251213
this.viewDate = this.calendarModel.getNextYear(this.viewDate);
252214
}

0 commit comments

Comments
 (0)