Skip to content

Commit 23eee3b

Browse files
committed
Merge pull request #120 from evoyy/pr/bugfix_empty_tabbable_array
[fixed] Handle case when no tabbable element exists
2 parents 06ebde2 + 471ef4c commit 23eee3b

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

Diff for: lib/helpers/scopeTab.js

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ var findTabbable = require('../helpers/tabbable');
22

33
module.exports = function(node, event) {
44
var tabbable = findTabbable(node);
5+
if (!tabbable.length) return;
56
var finalTabbable = tabbable[event.shiftKey ? 0 : tabbable.length - 1];
67
var leavingFinalTabbable = (
78
finalTabbable === document.activeElement ||

Diff for: specs/Modal.spec.js

+8
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,14 @@ describe('Modal', function () {
9292
});
9393
});
9494

95+
it('handles case when child has no tabbable elements', function() {
96+
var component = renderModal({isOpen: true}, 'hello');
97+
assert.doesNotThrow(function() {
98+
Simulate.keyDown(component.portal.refs.content, {key: "Tab", keyCode: 9, which: 9})
99+
});
100+
unmountModal();
101+
});
102+
95103
it('supports custom className', function() {
96104
var modal = renderModal({isOpen: true, className: 'myClass'});
97105
equal(modal.portal.refs.content.className.contains('myClass'), true);

0 commit comments

Comments
 (0)