Skip to content

Commit bffc165

Browse files
committed
Update TabController example screen
1 parent 85f8a7a commit bffc165

File tree

1 file changed

+33
-33
lines changed
  • demo/src/screens/componentScreens/TabControllerScreen

1 file changed

+33
-33
lines changed

demo/src/screens/componentScreens/TabControllerScreen/index.js

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import React, {Component} from 'react';
22
import {ActivityIndicator} from 'react-native';
33
import {
4+
Assets,
45
TabController,
56
Colors,
67
View,
@@ -28,16 +29,21 @@ const TABS = [
2829
];
2930

3031
class TabControllerScreen extends Component {
31-
state = {
32-
asCarousel: true,
33-
centerSelected: false,
34-
fewItems: false,
35-
selectedIndex: 0,
36-
items: _.chain(TABS)
37-
.map((tab) => ({label: tab, key: tab}))
38-
.value(),
39-
key: Date.now()
40-
};
32+
constructor(props) {
33+
super(props);
34+
35+
36+
this.state = {
37+
asCarousel: true,
38+
centerSelected: false,
39+
fewItems: false,
40+
selectedIndex: 0,
41+
key: Date.now()
42+
};
43+
44+
const items = this.generateTabItems();
45+
this.state.items = items;
46+
}
4147

4248
componentDidMount() {
4349
// this.slow();
@@ -53,33 +59,25 @@ class TabControllerScreen extends Component {
5359
}, 10);
5460
}
5561

56-
addTab = () => {
57-
const {tabsCount} = this.state;
62+
onAddItem = () => {
63+
console.warn('Add Item');
64+
}
5865

59-
if (tabsCount < 6) {
60-
this.setState({
61-
tabsCount: tabsCount + 1,
62-
key: Date.now(),
63-
selectedIndex: tabsCount
64-
});
66+
generateTabItems = (fewItems = this.state.fewItems, centerSelected = this.state.centerSelected) => {
67+
let items = _.chain(TABS)
68+
.take(fewItems ? 3 : TABS.length)
69+
.map((tab) => ({label: tab, key: tab}))
70+
.value();
71+
72+
if (!centerSelected) {
73+
items = [...items, {icon: Assets.icons.demo.add, key: 'add', ignore: true, width: 60, onPress: this.onAddItem}];
6574
}
66-
};
75+
return items;
76+
}
6777

6878
toggleItemsCount = () => {
6979
const {fewItems} = this.state;
70-
71-
let items;
72-
if (fewItems) {
73-
items = _.chain(TABS)
74-
.map((tab) => ({label: tab, key: tab}))
75-
.value();
76-
} else {
77-
items = _.chain(TABS)
78-
.take(3)
79-
.map((tab) => ({label: tab, key: tab}))
80-
.value();
81-
}
82-
80+
const items = this.generateTabItems(!fewItems);
8381
this.setState({fewItems: !fewItems, items, key: Date.now()});
8482
};
8583

@@ -91,8 +89,10 @@ class TabControllerScreen extends Component {
9189
};
9290

9391
toggleCenterSelected = () => {
92+
const {fewItems, centerSelected} = this.state;
9493
this.setState({
95-
centerSelected: !this.state.centerSelected,
94+
items: this.generateTabItems(fewItems, !centerSelected),
95+
centerSelected: !centerSelected,
9696
key: Date.now()
9797
});
9898
};

0 commit comments

Comments
 (0)