Skip to content

Commit a437d45

Browse files
committed
fine tune
1 parent 25afea4 commit a437d45

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

web_src/js/modules/fomantic/dropdown.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ test('hideScopedEmptyDividers-simple', () => {
77
<div class="item">a</div>
88
<div class="divider"></div>
99
<div class="divider"></div>
10+
<div class="divider"></div>
1011
<div class="item">b</div>
1112
<div class="divider"></div>
1213
</div>`);
@@ -15,6 +16,7 @@ test('hideScopedEmptyDividers-simple', () => {
1516
<div class="divider hidden transition"></div>
1617
<div class="item">a</div>
1718
<div class="divider hidden transition"></div>
19+
<div class="divider hidden transition"></div>
1820
<div class="divider"></div>
1921
<div class="item">b</div>
2022
<div class="divider hidden transition"></div>

web_src/js/modules/fomantic/dropdown.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ function attachDomEvents(dropdown: HTMLElement, focusable: HTMLElement, menu: HT
302302
export function hideScopedEmptyDividers(container: Element) {
303303
const visibleItems: Element[] = [];
304304
const curScopeVisibleItems: Element[] = [];
305-
let curScope = '', lastVisibleScope = '';
305+
let curScope: string = '', lastVisibleScope: string = '';
306306
const isScopedDivider = (item: Element) => item.matches('.divider') && item.hasAttribute('data-scope');
307307
const hideDivider = (item: Element) => item.classList.add('hidden', 'transition'); // dropdown has its own classes to hide items
308308

@@ -344,12 +344,10 @@ export function hideScopedEmptyDividers(container: Element) {
344344
hideDivider(visibleItems[visibleItems.length - 1]);
345345
visibleItems.pop();
346346
}
347-
// hide all duplicate dividers
348-
for (let i = 0; i < visibleItems.length; i++) {
349-
const item = visibleItems[i];
347+
// hide all duplicate dividers, hide current divider if next sibling is still divider
348+
// no need to update "visibleItems" array since this is the last loop
349+
for (const item of visibleItems) {
350350
if (!item.matches('.divider')) continue;
351-
if (i === 0 || i === visibleItems.length - 1 || item.nextElementSibling?.matches('.divider')) {
352-
hideDivider(item);
353-
}
351+
if (item.nextElementSibling?.matches('.divider')) hideDivider(item);
354352
}
355353
}

0 commit comments

Comments
 (0)