File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -107,6 +107,32 @@ export default class UncontrolledTabs extends Component {
107
107
return index ;
108
108
}
109
109
110
+ getFirstTab ( ) {
111
+ const count = this . getTabsCount ( ) ;
112
+
113
+ // Look for non disabled tab from the first tab
114
+ for ( let i = 0 ; i < count ; i ++ ) {
115
+ if ( ! isTabDisabled ( this . getTab ( i ) ) ) {
116
+ return i ;
117
+ }
118
+ }
119
+
120
+ return null ;
121
+ }
122
+
123
+ getLastTab ( ) {
124
+ let i = this . getTabsCount ( ) ;
125
+
126
+ // Look for non disabled tab from the last tab
127
+ while ( i -- ) {
128
+ if ( ! isTabDisabled ( this . getTab ( i ) ) ) {
129
+ return i ;
130
+ }
131
+ }
132
+
133
+ return null ;
134
+ }
135
+
110
136
getTabsCount ( ) {
111
137
return getTabsCount ( this . props . children ) ;
112
138
}
@@ -228,6 +254,16 @@ export default class UncontrolledTabs extends Component {
228
254
index = this . getNextTab ( index ) ;
229
255
preventDefault = true ;
230
256
useSelectedIndex = true ;
257
+ } else if ( e . keyCode === 35 ) {
258
+ // Select last tab (End key)
259
+ index = this . getLastTab ( ) ;
260
+ preventDefault = true ;
261
+ useSelectedIndex = true ;
262
+ } else if ( e . keyCode === 36 ) {
263
+ // Select first tab (Home key)
264
+ index = this . getFirstTab ( ) ;
265
+ preventDefault = true ;
266
+ useSelectedIndex = true ;
231
267
}
232
268
233
269
// This prevents scrollbars from moving around
You can’t perform that action at this time.
0 commit comments