Skip to content

Commit 5488f66

Browse files
authoredMay 17, 2024
fix(ui5-date-picker): display initial view properly (#8977)
Fixes: #8893

File tree

6 files changed

+46
-18
lines changed

6 files changed

+46
-18
lines changed
 

‎packages/main/src/Calendar.hbs

+2-2
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@
6767
._yearButtonTextSecType="{{_headerYearButtonTextSecType}}"
6868
@ui5-previous-press="{{onHeaderPreviousPress}}"
6969
@ui5-next-press="{{onHeaderNextPress}}"
70-
@ui5-show-month-press="{{onHeaderShowMonthPress}}"
71-
@ui5-show-year-press="{{onHeaderShowYearPress}}"
70+
@ui5-show-month-view="{{onHeaderShowMonthPress}}"
71+
@ui5-show-year-view="{{onHeaderShowYearPress}}"
7272
></ui5-calendar-header>
7373
</div>
7474

‎packages/main/src/Calendar.ts

+6-4
Original file line numberDiff line numberDiff line change
@@ -196,8 +196,8 @@ type SpecialCalendarDateT = {
196196
},
197197
})
198198

199-
@event("show-month-press")
200-
@event("show-year-press")
199+
@event("show-month-view")
200+
@event("show-year-view")
201201
class Calendar extends CalendarPart {
202202
/**
203203
* Defines the type of selection used in the calendar component.
@@ -421,7 +421,7 @@ class Calendar extends CalendarPart {
421421
onHeaderShowMonthPress(e: CustomEvent) {
422422
this._currentPickerDOM._autoFocus = false;
423423
this._currentPicker = "month";
424-
this.fireEvent("show-month-press", e);
424+
this.fireEvent("show-month-view", e);
425425
}
426426

427427
/**
@@ -430,7 +430,7 @@ class Calendar extends CalendarPart {
430430
onHeaderShowYearPress(e: CustomEvent) {
431431
this._currentPickerDOM._autoFocus = false;
432432
this._currentPicker = "year";
433-
this.fireEvent("show-year-press", e);
433+
this.fireEvent("show-year-view", e);
434434
}
435435

436436
get _currentPickerDOM() {
@@ -567,10 +567,12 @@ class Calendar extends CalendarPart {
567567
_onkeydown(e: KeyboardEvent) {
568568
if (isF4(e) && this._currentPicker !== "month") {
569569
this._currentPicker = "month";
570+
this.fireEvent("show-month-view", e);
570571
}
571572

572573
if (isF4Shift(e) && this._currentPicker !== "year") {
573574
this._currentPicker = "year";
575+
this.fireEvent("show-year-view", e);
574576
}
575577
}
576578

‎packages/main/src/CalendarHeader.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ type SecondaryCalendarButtonTexts = {
3636
})
3737
@event("next-press")
3838
@event("previous-press")
39-
@event("show-month-press")
40-
@event("show-year-press")
39+
@event("show-month-view")
40+
@event("show-year-view")
4141
class CalendarHeader extends UI5Element {
4242
/**
4343
* Defines component's timestamp.
@@ -144,7 +144,7 @@ class CalendarHeader extends UI5Element {
144144
}
145145

146146
onMonthButtonClick(e: MouseEvent) {
147-
this.fireEvent("show-month-press", e);
147+
this.fireEvent("show-month-view", e);
148148
}
149149

150150
onMonthButtonKeyDown(e: KeyboardEvent) {
@@ -153,19 +153,19 @@ class CalendarHeader extends UI5Element {
153153
}
154154

155155
if (isEnter(e)) {
156-
this.fireEvent("show-month-press", e);
156+
this.fireEvent("show-month-view", e);
157157
}
158158
}
159159

160160
onMonthButtonKeyUp(e: KeyboardEvent) {
161161
if (isSpace(e)) {
162162
e.preventDefault();
163-
this.fireEvent("show-month-press", e);
163+
this.fireEvent("show-month-view", e);
164164
}
165165
}
166166

167167
onYearButtonClick(e: MouseEvent) {
168-
this.fireEvent("show-year-press", e);
168+
this.fireEvent("show-year-view", e);
169169
}
170170

171171
onYearButtonKeyDown(e: KeyboardEvent) {
@@ -174,14 +174,14 @@ class CalendarHeader extends UI5Element {
174174
}
175175

176176
if (isEnter(e)) {
177-
this.fireEvent("show-year-press", e);
177+
this.fireEvent("show-year-view", e);
178178
}
179179
}
180180

181181
onYearButtonKeyUp(e: KeyboardEvent) {
182182
if (isSpace(e)) {
183183
e.preventDefault();
184-
this.fireEvent("show-year-press", e);
184+
this.fireEvent("show-year-view", e);
185185
}
186186
}
187187

‎packages/main/src/DatePickerPopover.hbs

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@
4545
.minDate="{{minDate}}"
4646
.maxDate="{{maxDate}}"
4747
@ui5-selected-dates-change="{{onSelectedDatesChange}}"
48-
@ui5-show-month-press="{{onHeaderShowMonthPress}}"
49-
@ui5-show-year-press="{{onHeaderShowYearPress}}"
48+
@ui5-show-month-view="{{onHeaderShowMonthPress}}"
49+
@ui5-show-year-view="{{onHeaderShowYearPress}}"
5050
?hide-week-numbers="{{hideWeekNumbers}}"
5151
._currentPicker="{{_calendarCurrentPicker}}"
5252
._pickersMode="{{_calendarPickersMode}}"

‎packages/main/src/DateTimePickerPopover.hbs

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
.minDate="{{minDate}}"
2626
.maxDate="{{maxDate}}"
2727
@ui5-selected-dates-change="{{onSelectedDatesChange}}"
28-
@ui5-show-month-press="{{onHeaderShowMonthPress}}"
29-
@ui5-show-year-press="{{onHeaderShowYearPress}}"
28+
@ui5-show-month-view="{{onHeaderShowMonthPress}}"
29+
@ui5-show-year-view="{{onHeaderShowYearPress}}"
3030
?hide-week-numbers="{{hideWeekNumbers}}"
3131
._currentPicker="{{_calendarCurrentPicker}}"
3232
>

‎packages/main/test/specs/DatePicker.spec.js

+26
Original file line numberDiff line numberDiff line change
@@ -1369,4 +1369,30 @@ describe("Date Picker Tests", () => {
13691369
assert.ok(await monthPicker.getAttribute("hidden"));
13701370
assert.ok(await yearPicker.getAttribute("hidden"));
13711371
});
1372+
1373+
it("should open day picker view initially when open is triggered via keyboard", async () => {
1374+
datepicker.id = "#dpCalendarModeMonths";
1375+
1376+
await browser.keys("Escape");
1377+
1378+
const calendar = await datepicker.getCalendar();
1379+
const valueHelpIcon = await datepicker.getValueHelpIcon();
1380+
await valueHelpIcon.click();
1381+
let currentPicker = await calendar.getProperty("_currentPicker");
1382+
1383+
assert.ok(await datepicker.isPickerOpen(), "Datepicker is open");
1384+
assert.equal(currentPicker, "day", "calendar is opened on days");
1385+
1386+
await browser.keys("F4");
1387+
currentPicker = await calendar.getProperty("_currentPicker");
1388+
assert.equal(currentPicker, "month", "calendar is opened on months");
1389+
1390+
await browser.keys("Escape");
1391+
assert.notOk(await datepicker.isPickerOpen(), "Datepicker is closed");
1392+
1393+
await valueHelpIcon.click();
1394+
currentPicker = await calendar.getProperty("_currentPicker");
1395+
assert.ok(await datepicker.isPickerOpen(), "Datepicker is open");
1396+
assert.equal(currentPicker, "day", "calendar is opened on days");
1397+
});
13721398
});

0 commit comments

Comments
 (0)
Please sign in to comment.