const React = require('react');
const { Component } = require('react');
const { SafeAreaView, FlatList, View, Text } = require('react-native');
const { Navigation } = require('react-native-navigation');
const testIDs = require('../testIDs');
const FakeListData = require('../assets/FakeListData');
class FlatListScreen extends Component {
static options(passProps) {
return {
topBar: {
title: {
text: 'FlatList with fake data',
},
searchBar: true, // iOS 11+ native UISearchBar inside topBar
searchBarHiddenWhenScrolling: true,
searchBarPlaceholder: 'Search', // iOS 11+ SearchBar placeholder
largeTitle: {
visible: true,
fontSize: 30,
color: 'white',
fontFamily: 'Helvetica',
},
leftButtons: [
{
id: 'sideMenu',
color: 'red',
icon: require('../images/two.png'),
}
],
rightButtons: [
{
id: 'toggle',
color: 'red',
icon: require('../images/one.png'),
},
],
},
};
}
constructor(props) {
super(props);
Navigation.events().bindComponent(this);
this.state = { isFetching: false, shouldHideOnScroll: false };
}
navigationButtonPressed({ buttonId }) {
switch (buttonId) {
case 'sideMenu':
Navigation.mergeOptions(this.props.componentId, {
sideMenu: {
left: {
visible: true,
},
},
});
break;
case 'toggle':
const { shouldHideOnScroll } = this.state;
Navigation.mergeOptions(this.props.componentId, {
topBar: {
hideOnScroll: !shouldHideOnScroll,
drawBehind: !shouldHideOnScroll,
}
});
this.setState({
shouldHideOnScroll: !shouldHideOnScroll
});
alert(`hideOnScroll/drawBehind is now ${!shouldHideOnScroll}`);
break;
default:
break;
}
}
onRefresh = () => {
this.setState({ isFetching: true }, () => {
setTimeout(() => {
this.setState({ isFetching: false });
}, 2000);
});
}
seperatorComponent = () => ;
keyExtractor = item => item.id;
renderItem = ({ item }) => (
{item.first_name} {item.last_name}
{item.email}
)
render() {
return (
);
}
}
module.exports = FlatListScreen;
const styles = {
root: {
flex: 1,
backgroundColor: 'whitesmoke'
},
listItem: {
height: 50,
},
seperatorComponent: {
height: 5,
backgroundColor: 'black',
}
};