fix: various dropdown problems (#38020)

1. remove legacy onResponseKeepSelectedItem, refactor the code to
dropdown.js
2. make dropdown correctly handle "single selection + remote query + filter"
    * fix #38018
3. fix incorrect "transition" class usage for the dropdown dividers
This commit is contained in:
wxiaoguang
2026-06-07 10:33:16 +00:00
committed by GitHub
parent 9bbea90bfe
commit e2fbfc8730
5 changed files with 25 additions and 37 deletions
+8 -8
View File
@@ -13,13 +13,13 @@ test('hideScopedEmptyDividers-simple', () => {
</div>`);
hideScopedEmptyDividers(container);
expect(container.innerHTML).toEqual(`
<div class="divider hidden transition"></div>
<div class="divider hidden"></div>
<div class="item">a</div>
<div class="divider hidden transition"></div>
<div class="divider hidden transition"></div>
<div class="divider hidden"></div>
<div class="divider hidden"></div>
<div class="divider"></div>
<div class="item">b</div>
<div class="divider hidden transition"></div>
<div class="divider hidden"></div>
`);
});
@@ -35,7 +35,7 @@ test('hideScopedEmptyDividers-items-all-filtered', () => {
hideScopedEmptyDividers(container);
expect(container.innerHTML).toEqual(`
<div class="any"></div>
<div class="divider hidden transition"></div>
<div class="divider hidden"></div>
<div class="item filtered">a</div>
<div class="item filtered">b</div>
<div class="divider"></div>
@@ -52,7 +52,7 @@ test('hideScopedEmptyDividers-hide-last', () => {
hideScopedEmptyDividers(container);
expect(container.innerHTML).toEqual(`
<div class="item">a</div>
<div class="divider hidden transition" data-scope="b"></div>
<div class="divider hidden" data-scope="b"></div>
<div class="item tw-hidden" data-scope="b">b</div>
`);
});
@@ -68,9 +68,9 @@ test('hideScopedEmptyDividers-scoped-items', () => {
hideScopedEmptyDividers(container);
expect(container.innerHTML).toEqual(`
<div class="item" data-scope="">a</div>
<div class="divider hidden transition" data-scope="b"></div>
<div class="divider hidden" data-scope="b"></div>
<div class="item tw-hidden" data-scope="b">b</div>
<div class="divider hidden transition" data-scope=""></div>
<div class="divider hidden" data-scope=""></div>
<div class="item" data-scope="">c</div>
`);
});