import React from 'react'; import PropTypes from 'prop-types'; import { TouchableHighlight, View, FlatList, StyleSheet, } from 'react-native'; import { RkStyleSheet, RkTheme, RkText, } from 'react-native-ui-kitten'; import NavigationType from '../../config/navigation/propTypes'; export class CategoryMenu extends React.Component { static propTypes = { navigation: NavigationType.isRequired, items: PropTypes.arrayOf(PropTypes.shape({ title: PropTypes.string.isRequired, })).isRequired, }; onItemPressed = (item) => { const url = item.action || item.id; this.props.navigation.navigate(url); }; extractItemKey = (item) => item.id; renderItem = ({ item }) => ( this.onItemPressed(item)}> {item.title} ); renderPlaceholder = () => ( Coming Soon... ); renderList = () => ( ); render = () => (this.props.items.length === 0 ? this.renderPlaceholder() : this.renderList()); } const styles = RkStyleSheet.create(theme => ({ item: { paddingVertical: 32.5, paddingHorizontal: 16.5, borderBottomWidth: StyleSheet.hairlineWidth, borderColor: theme.colors.border.base, }, list: { backgroundColor: theme.colors.screen.base, }, emptyContainer: { flex: 1, alignItems: 'center', justifyContent: 'center', backgroundColor: theme.colors.screen.base, }, }));