File tree Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ export class TabsRemoval extends PureComponent {
11
11
12
12
this . state = {
13
13
items : this . getTabs ( ) ,
14
+ selectedTabKey : 0 ,
14
15
} ;
15
16
}
16
17
@@ -30,7 +31,13 @@ export class TabsRemoval extends PureComponent {
30
31
// create a new array without [indexToRemove] item
31
32
const newTabs = [ ...currentTabs . slice ( 0 , indexToRemove ) , ...currentTabs . slice ( indexToRemove + 1 ) ] ;
32
33
33
- this . setState ( { items : newTabs } ) ;
34
+ const nextSelectedIndex = newTabs [ indexToRemove ] ? indexToRemove : indexToRemove - 1 ;
35
+ if ( ! newTabs [ nextSelectedIndex ] ) {
36
+ alert ( 'You can not delete the last tab!' ) ;
37
+ return ;
38
+ }
39
+
40
+ this . setState ( { items : newTabs , selectedTabKey : newTabs [ nextSelectedIndex ] . key } ) ;
34
41
} ;
35
42
36
43
getTabs = ( ) =>
@@ -46,9 +53,10 @@ export class TabsRemoval extends PureComponent {
46
53
} ) ) ;
47
54
48
55
render ( ) {
56
+ const { items, selectedTabKey } = this . state ;
49
57
return (
50
58
< div className = "itemRemoval__wrapper" >
51
- < Tabs items = { this . state . items } selectedTabKey = { 0 } allowRemove removeActiveOnly onRemove = { this . onRemoveTab } />
59
+ < Tabs items = { items } selectedTabKey = { selectedTabKey } allowRemove removeActiveOnly onRemove = { this . onRemoveTab } />
52
60
</ div >
53
61
) ;
54
62
}
Original file line number Diff line number Diff line change @@ -34,7 +34,8 @@ export default class Tabs extends Component {
34
34
}
35
35
36
36
componentWillReceiveProps ( nextProps ) {
37
- const { items, selectedTabKey } = this . props ;
37
+ const { items } = this . props ;
38
+ const { selectedTabKey } = this . state ;
38
39
const newState = { } ;
39
40
if ( items !== nextProps . items ) {
40
41
newState . blockWidth = 0 ;
You can’t perform that action at this time.
0 commit comments