Skip to content

Commit 61f79c4

Browse files
authored
Merge pull request #617 from youda97/dropdown-space
fix(dropdown): Swallows space keys after it's been opened
2 parents f11c458 + 8d1675b commit 61f79c4

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

src/dropdown/list/dropdown-list.component.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@ import { Observable, isObservable, Subscription } from "rxjs";
5454
class="bx--list-box__menu bx--multi-select"
5555
[attr.aria-label]="ariaLabel">
5656
<li
57-
#listItem
58-
tabindex="-1"
5957
role="option"
6058
*ngFor="let item of displayItems; let i = index"
6159
(click)="doClick($event, item)"
@@ -67,7 +65,10 @@ import { Observable, isObservable, Subscription } from "rxjs";
6765
'bx--list-box__menu-item--active': item.selected,
6866
disabled: item.disabled
6967
}">
70-
<div class="bx--list-box__menu-item__option">
68+
<div
69+
#listItem
70+
tabindex="-1"
71+
class="bx--list-box__menu-item__option">
7172
<div
7273
*ngIf="!listTpl && type === 'multi'"
7374
class="bx--form-item bx--checkbox-wrapper">
@@ -405,10 +406,12 @@ export class DropdownList implements AbstractDropdownView, AfterViewInit, OnDest
405406
doKeyDown(event: KeyboardEvent, item: ListItem) {
406407
// "Spacebar", "Down", and "Up" are IE specific values
407408
if (event.key === "Enter" || event.key === " " || event.key === "Spacebar") {
408-
event.preventDefault();
409-
if (event.key === "Enter") {
410-
this.doClick(event, item);
411-
}
409+
if (this.listElementList.some(option => option.nativeElement === event.target)) {
410+
event.preventDefault();
411+
}
412+
if (event.key === "Enter") {
413+
this.doClick(event, item);
414+
}
412415
} else if (event.key === "ArrowDown" || event.key === "ArrowUp" || event.key === "Down" || event.key === "Up") {
413416
event.preventDefault();
414417
if (event.key === "ArrowDown" || event.key === "Down") {

0 commit comments

Comments
 (0)