Skip to content

Commit b80b469

Browse files
authored
fix(ui5-datetime-picker): show time picker after date selection (#11548)
The `ui5-datetime-picker` now shows the time selection clocks after a date is chosen from the calendar on small screens. Fixes: #11378
1 parent 87cd3c7 commit b80b469

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

packages/main/src/DateTimePicker.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ import DateTimePickerTemplate from "./DateTimePickerTemplate.js";
3737
import DateTimePickerCss from "./generated/themes/DateTimePicker.css.js";
3838
import DateTimePickerPopoverCss from "./generated/themes/DateTimePickerPopover.css.js";
3939
import CalendarPickersMode from "./types/CalendarPickersMode.js";
40+
import type TimeSelectionClocks from "./TimeSelectionClocks.js";
41+
import query from "@ui5/webcomponents-base/dist/decorators/query.js";
42+
import { renderFinished } from "@ui5/webcomponents-base";
4043

4144
const PHONE_MODE_BREAKPOINT = 640; // px
4245

@@ -147,6 +150,9 @@ class DateTimePicker extends DatePicker implements IFormInputElement {
147150
@property({ type: Object })
148151
_previewValues: PreviewValues = {};
149152

153+
@query("[ui5-time-selection-clocks]")
154+
_clocks!: TimeSelectionClocks;
155+
150156
_handleResizeBound: ResizeObserverCallback;
151157

152158
constructor() {
@@ -275,7 +281,7 @@ class DateTimePicker extends DatePicker implements IFormInputElement {
275281
/**
276282
* @override
277283
*/
278-
onSelectedDatesChange(e: CustomEvent<CalendarSelectionChangeEventDetail>) {
284+
async onSelectedDatesChange(e: CustomEvent<CalendarSelectionChangeEventDetail>) {
279285
e.preventDefault();
280286
// @ts-ignore Needed for FF
281287
const dateTimePickerContent = e.path ? e.path[1] : e.composedPath()[1];
@@ -285,6 +291,14 @@ class DateTimePicker extends DatePicker implements IFormInputElement {
285291
calendarValue: e.detail.selectedValues[0],
286292
timeSelectionValue: dateTimePickerContent.lastChild.value,
287293
};
294+
this._showTimeView = true;
295+
296+
if (this.showDateView) {
297+
return;
298+
}
299+
300+
await renderFinished();
301+
this._clocks.focus();
288302
}
289303

290304
onTimeSelectionChange(e: CustomEvent<TimeSelectionChangeEventDetail>) {

packages/main/src/TimeSelectionClocksTemplate.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export default function TimeSelectionClocksTemplate(this: TimeSelectionClocks) {
1919
<>
2020
{ entity.hasSeparator && <span class="ui5-time-selection-separator">:</span> }
2121
<ToggleSpinButton
22+
data-sap-focus-ref
2223
id={`${this._id}_button_${entity.entity}`}
2324
data-ui5-clock={entity.entity}
2425
valueMin={entity.attributes && entity.attributes.min}

0 commit comments

Comments
 (0)