Commit 3cf8e64b authored by Wahyu Adjie Prasetyo's avatar Wahyu Adjie Prasetyo

benerin bug menu selection

parent 38e7df66
...@@ -64,7 +64,7 @@ class Item extends React.Component { ...@@ -64,7 +64,7 @@ class Item extends React.Component {
return ( return (
<View style={{ flex: 1, margin: 10 }} key={item.id} ref={this.props._scrollView}> <View style={{ flex: 1, margin: 10 }} key={item.id} ref={this.props._scrollView}>
<ScrollView ref={view => this._scrollView = view}>
{item.code == 'CATEGORY' ? ( {item.code == 'CATEGORY' ? (
<Text style={{ fontSize: 15, color: '#c9af6d', fontFamily: 'Gotham-Black' }}>{item.name}</Text> <Text style={{ fontSize: 15, color: '#c9af6d', fontFamily: 'Gotham-Black' }}>{item.name}</Text>
) : ( ) : (
...@@ -184,7 +184,6 @@ class Item extends React.Component { ...@@ -184,7 +184,6 @@ class Item extends React.Component {
</View> </View>
</View> </View>
)} )}
</ScrollView>
</View > </View >
) )
} }
......
...@@ -31,8 +31,9 @@ class MenuSelection extends React.Component { ...@@ -31,8 +31,9 @@ class MenuSelection extends React.Component {
indicator: true, indicator: true,
my_lat: 0, my_lat: 0,
my_long: 0, my_long: 0,
data:[],
data_before_search: this.props.menu_item,
note: '' note: ''
} }
} }
...@@ -61,6 +62,10 @@ class MenuSelection extends React.Component { ...@@ -61,6 +62,10 @@ class MenuSelection extends React.Component {
}); });
} }
shouldComponentUpdate() {
return true
}
componentWillUnmount() { componentWillUnmount() {
this._unsubscribe(); this._unsubscribe();
} }
...@@ -183,12 +188,26 @@ class MenuSelection extends React.Component { ...@@ -183,12 +188,26 @@ class MenuSelection extends React.Component {
session(response, navigation) session(response, navigation)
Alert.alert(response.msg); Alert.alert(response.msg);
}) })
}
filterSubcategory = (item) => {
let index_start = _.findIndex(this.props.menu_item, ['name', item.name])
let index_next_category = _.findIndex(this.state.listCategory, ['name', item.name]) + 1
let next_category = this.state.listCategory[index_next_category]
let index_end = _.findIndex(this.props.menu_item, ['name', next_category.name])
let filter_item = this.props.menu_item.slice(index_start, index_end);
this.setState({
data_before_search: filter_item
})
} }
renderTabBar = ({ item }) => { renderTabBar = ({ item }) => {
return ( return (
<View style={{ flex: 1, height: 270 }}> <View style={{ flex: 1, height: 270 }}>
<TouchableOpacity onPress={() => this.scrollToIndex(item)}> <TouchableOpacity onPress={() => this.filterSubcategory(item)}>
{item.image === '' ? ( {item.image === '' ? (
<View style={{ height: 60, width: 60, top: 5 }} /> <View style={{ height: 60, width: 60, top: 5 }} />
) : ) :
...@@ -201,12 +220,26 @@ class MenuSelection extends React.Component { ...@@ -201,12 +220,26 @@ class MenuSelection extends React.Component {
) )
} }
renderItem = ({ item, index }) => {
return (
<View>
<Item navigation={this.props.navigation}
item={item}
handleAdd={() => this.handleAdd(item, index)}
handleMin={() => this.handleMin(item, index)}
/>
</View>
)
}
refresh() { refresh() {
this.setState({ isFetching: true }, function () { this.getMenuList() }); this.setState({ isFetching: true }, function () { this.getMenuList() });
} }
scrollToItem = () => { scrollToItem = () => {
this.props._scrollView.scrollTo({ y: 1 * 100 }); this.props._scrollView.scrollTo({ x: 0, y: 1 * 100 });
} }
handleAdd(item, index) { handleAdd(item, index) {
...@@ -262,9 +295,9 @@ class MenuSelection extends React.Component { ...@@ -262,9 +295,9 @@ class MenuSelection extends React.Component {
} }
} }
onChange(params) { // onChange(params) {
console.log(params); // console.log(params);
} // }
handleMin(item, index) { handleMin(item, index) {
...@@ -292,12 +325,35 @@ class MenuSelection extends React.Component { ...@@ -292,12 +325,35 @@ class MenuSelection extends React.Component {
} }
scrollToIndex = (item) => { scrollToIndex = (item) => {
index = _.findIndex(this.props.menu_item, ['name', item.name]) // let start = new Date()
if (index > -1) { // let end = new Date()
this.flatListRef.scrollToIndex({ animated: true, index: index }); // let diff = end - start / 1000
// console.log("TIME : "+diff)
try {
index = _.findIndex(this.props.menu_item, ['name', item.name])
if (index > -1) {
this.flatListRef.scrollToIndex({ animated: true, index: index });
}
} catch (error) {
// index = _.findIndex(this.props.menu_item, ['name', item.name])
// this.flatListRef.scrollToIndex({ animated: true, index: this.setLastIndex });
} }
} }
getItemLayout = (data, index) => (
{
length: 100,
offset: 100 * index,
index
}
)
// setLastIndex = (index) => {
// las
// lastIndex = index
// }
render() { render() {
return ( return (
<View style={styles.container}> <View style={styles.container}>
...@@ -312,6 +368,8 @@ class MenuSelection extends React.Component { ...@@ -312,6 +368,8 @@ class MenuSelection extends React.Component {
data={this.state.listCategory} data={this.state.listCategory}
renderItem={this.renderTabBar} renderItem={this.renderTabBar}
keyExtractor={(item) => item.id} keyExtractor={(item) => item.id}
maxToRenderPerBatch={10}
/> />
</View> </View>
<View style={{ height: 1, backgroundColor: 'grey', marginRight: 10, marginLeft: 10, marginTop: 5, }}></View> <View style={{ height: 1, backgroundColor: 'grey', marginRight: 10, marginLeft: 10, marginTop: 5, }}></View>
...@@ -319,24 +377,19 @@ class MenuSelection extends React.Component { ...@@ -319,24 +377,19 @@ class MenuSelection extends React.Component {
{this.state.indicator == true ? ( {this.state.indicator == true ? (
<ActivityIndicator style={{ top: 10 }} size="large" color="#c9af6d" /> <ActivityIndicator style={{ top: 10 }} size="large" color="#c9af6d" />
) : ( ) : (
this.state.data_before_search.length > 0 ? (
<FlatList <FlatList
data={this.props.menu_item} data={this.state.data_before_search}
renderItem={({ item, index }) => ( renderItem={this.renderItem}
<Item navigation={this.props.navigation}
item={item}
handleAdd={() => this.handleAdd(item, index)}
handleMin={() => this.handleMin(item, index)}
/>
)}
getItemLayout={(data, index) => (
{ length: 250, offset: 250 * index, index }
)}
keyExtractor={item => item.id} keyExtractor={item => item.id}
ref={(ref) => { this.flatListRef = ref; }} // ref={(ref) => { this.flatListRef = ref; }}
initialNumToRender={5} initialNumToRender={5}
maxToRenderPerBatch={10} maxToRenderPerBatch={10}
windowSize={10} windowSize={10}
/> />
):(
<Text style={{ flexWrap: 'wrap', fontFamily: 'Gotham-Light', color: '#b1b1b2', textAlign: 'center',top:20 }}> Tidak Ada Menu untuk kategory ini !</Text>
)
)} )}
</View> </View>
<View> <View>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment