Skip to content

Commit 3c32fbe

Browse files
authored
fix: detect item correctly when clicking item content (#7371)
1 parent 504787f commit 3c32fbe

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

packages/select/src/vaadin-select-base-mixin.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,8 @@ export const SelectBaseMixin = (superClass) =>
256256
menuElement.addEventListener(
257257
'click',
258258
(e) => {
259-
const value = e.target.value;
260-
this.__dispatchChangePending = value !== undefined && value !== this.value;
259+
const item = e.composedPath().find((el) => el._hasVaadinItemMixin);
260+
this.__dispatchChangePending = Boolean(item && item.value !== undefined && item.value !== this.value);
261261
this.opened = false;
262262
},
263263
true,

packages/select/test/select.common.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ describe('vaadin-select', () => {
9696
html`
9797
<vaadin-list-box>
9898
<vaadin-item>Option 1</vaadin-item>
99-
<vaadin-item value="v2" label="o2">Option 2</vaadin-item>
99+
<vaadin-item value="v2" label="o2"><span>Option 2</span></vaadin-item>
100100
<vaadin-item value="">Option 3</vaadin-item>
101101
<vaadin-item></vaadin-item>
102102
<vaadin-item label="">Empty</vaadin-item>
@@ -617,6 +617,15 @@ describe('vaadin-select', () => {
617617
expect(changeSpy.callCount).to.equal(1);
618618
});
619619

620+
it('should fire `change` event when value changes by user clicking the element inside item', async () => {
621+
select.opened = true;
622+
await nextUpdate(select);
623+
const span = menu.children[1].firstElementChild;
624+
span.click();
625+
await nextUpdate(select);
626+
expect(changeSpy).to.be.calledOnce;
627+
});
628+
620629
it('should fire `change` event when value changes by user selecting item with keyboard', async () => {
621630
select.opened = true;
622631
await nextUpdate(select);

0 commit comments

Comments
 (0)