Skip to content

Commit 9ff29e9

Browse files
authored
fix: close date-picker overlay correctly on backdrop click (#9905)
1 parent aad0c3e commit 9ff29e9

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

packages/date-picker/src/vaadin-date-picker-mixin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1033,7 +1033,7 @@ export const DatePickerMixin = (subclass) =>
10331033
*/
10341034
_onClick(event) {
10351035
// Ignore click events bubbling from the overlay
1036-
if (event.composedPath().includes(this._overlayContent)) {
1036+
if (event.composedPath().includes(this._overlayElement)) {
10371037
return;
10381038
}
10391039

packages/date-picker/src/vaadin-date-picker.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,8 @@ class DatePicker extends DatePickerMixin(
271271
/** @private */
272272
_onVaadinOverlayClose(e) {
273273
// Prevent closing the overlay on label element click
274-
if (e.detail.sourceEvent && e.detail.sourceEvent.composedPath().includes(this)) {
274+
const event = e.detail.sourceEvent;
275+
if (event && event.composedPath().includes(this) && !event.composedPath().includes(this._overlayElement)) {
275276
e.preventDefault();
276277
}
277278
}

packages/date-picker/test/dropdown.test.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,16 @@ describe('dropdown', () => {
4646
expect(overlay.opened).to.be.false;
4747
});
4848

49+
it('should close overlay on backdrop element click', async () => {
50+
await open(datePicker);
51+
52+
datePicker.setAttribute('fullscreen', '');
53+
overlay.shadowRoot.querySelector('[part="backdrop"]').click();
54+
55+
expect(datePicker.opened).to.be.false;
56+
expect(overlay.opened).to.be.false;
57+
});
58+
4959
describe('toggle button', () => {
5060
let toggleButton;
5161

0 commit comments

Comments
 (0)