Skip to content

Commit dcb4fc1

Browse files
authored
fix: do not show placeholder when select item has child elements (#7504)
1 parent a87beee commit dcb4fc1

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,9 @@ export const SelectBaseMixin = (superClass) =>
550550
if (!item) {
551551
return false;
552552
}
553-
return Boolean(item.hasAttribute('label') ? item.getAttribute('label') : item.textContent.trim());
553+
const hasText = Boolean(item.hasAttribute('label') ? item.getAttribute('label') : item.textContent.trim());
554+
const hasChildren = item.childElementCount > 0;
555+
return hasText || hasChildren;
554556
}
555557

556558
/** @private */

packages/select/test/select.common.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ describe('vaadin-select', () => {
103103
<vaadin-item value="v4" disabled>Disabled</vaadin-item>
104104
<vaadin-item value="5">A number</vaadin-item>
105105
<vaadin-item value="false">A boolean</vaadin-item>
106+
<vaadin-item label="foo"></vaadin-item>
107+
<vaadin-item><img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" alt="" /></vaadin-item>
106108
</vaadin-list-box>
107109
`,
108110
root,
@@ -472,6 +474,19 @@ describe('vaadin-select', () => {
472474
await nextUpdate(select);
473475
expect(valueButton.textContent).to.equal('Select an item');
474476
});
477+
478+
it('should not show placeholder for items with label, text content or child elements', async () => {
479+
const emptyItems = [select._items[3], select._items[4]];
480+
const nonEmptyItems = select._items.filter((item) => !emptyItems.includes(item));
481+
482+
for (const item of nonEmptyItems) {
483+
select.opened = true;
484+
await nextRender();
485+
click(item);
486+
await nextUpdate(select);
487+
expect(valueButton.textContent).not.to.equal('Select an item');
488+
}
489+
});
475490
});
476491

477492
describe('has-value attribute', () => {

0 commit comments

Comments
 (0)