@@ -56,6 +56,7 @@ export default class UncontrolledTabs extends Component {
5656 PropTypes . object ,
5757 ] ) ,
5858 disabledTabClassName : PropTypes . string ,
59+ disableUpDownKeys : PropTypes . bool ,
5960 domRef : PropTypes . func ,
6061 focus : PropTypes . bool ,
6162 forceRenderTabPanel : PropTypes . bool ,
@@ -259,7 +260,7 @@ export default class UncontrolledTabs extends Component {
259260 }
260261
261262 handleKeyDown = ( e ) => {
262- const { direction } = this . props ;
263+ const { direction, disableUpDownKeys } = this . props ;
263264 if ( this . isTabFromContainer ( e . target ) ) {
264265 let { selectedIndex : index } = this . props ;
265266 let preventDefault = false ;
@@ -271,17 +272,17 @@ export default class UncontrolledTabs extends Component {
271272 this . handleClick ( e ) ;
272273 }
273274
274- if ( e . keyCode === 37 || e . keyCode === 38 ) {
275- // Select next tab to the left
275+ if ( e . keyCode === 37 || ( ! disableUpDownKeys && e . keyCode === 38 ) ) {
276+ // Select next tab to the left, validate if up arrow is not disabled
276277 if ( direction === 'rtl' ) {
277278 index = this . getNextTab ( index ) ;
278279 } else {
279280 index = this . getPrevTab ( index ) ;
280281 }
281282 preventDefault = true ;
282283 useSelectedIndex = true ;
283- } else if ( e . keyCode === 39 || e . keyCode === 40 ) {
284- // Select next tab to the right
284+ } else if ( e . keyCode === 39 || ( ! disableUpDownKeys && e . keyCode === 40 ) ) {
285+ // Select next tab to the right, validate if down arrow is not disabled
285286 if ( direction === 'rtl' ) {
286287 index = this . getPrevTab ( index ) ;
287288 } else {
@@ -368,6 +369,7 @@ export default class UncontrolledTabs extends Component {
368369 selectedTabClassName, // unused
369370 selectedTabPanelClassName, // unused
370371 environment, // unused
372+ disableUpDownKeys, // unused
371373 ...attributes
372374 } = this . props ;
373375
0 commit comments