Skip to content

Commit 61f4211

Browse files
authored
Merge pull request #2 from nextcloud-deps/fix/open-dropdown-on-enter
2 parents 246df60 + 5baaa76 commit 61f4211

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

src/components/Select.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1332,6 +1332,10 @@ export default {
13321332
onSearchKeyDown(e) {
13331333
const preventAndSelect = (e) => {
13341334
e.preventDefault()
1335+
if (!this.open) {
1336+
this.open = true
1337+
return
1338+
}
13351339
return !this.isComposing && this.typeAheadSelect()
13361340
}
13371341

tests/unit/Dropdown.spec.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,15 @@ describe('Toggling Dropdown', () => {
6363
expect(Select.vm.search).toEqual('')
6464
})
6565

66+
it('should open dropdown on selectOnKeyCodes keydown', async () => {
67+
const Select = mountDefault()
68+
const input = Select.findComponent({ ref: 'search' })
69+
70+
input.trigger('keydown.enter')
71+
72+
expect(Select.vm.open).toEqual(true)
73+
})
74+
6675
it('should open dropdown on alphabetic input', async () => {
6776
const Select = mountDefault()
6877
const input = Select.findComponent({ ref: 'search' })

tests/unit/Keydown.spec.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ describe('Custom Keydown Handlers', () => {
1919

2020
const spy = jest.spyOn(Select.vm, 'typeAheadSelect')
2121

22+
Select.vm.open = true
2223
Select.findComponent({ ref: 'search' }).trigger('keydown.space')
2324

2425
expect(spy).toHaveBeenCalledTimes(1)
@@ -33,6 +34,7 @@ describe('Custom Keydown Handlers', () => {
3334

3435
const spy = jest.spyOn(Select.vm, 'typeAheadSelect')
3536

37+
Select.vm.open = true
3638
Select.findComponent({ ref: 'search' }).trigger('keydown.space')
3739
expect(onKeyDown.mock.calls.length).toBe(1)
3840

0 commit comments

Comments
 (0)