import React from 'react' import { Modal, StyleSheet, TouchableOpacity, View } from 'react-native' import PropTypes from 'prop-types' import AppIcon from '../common/app-icon' import AppText from '../common/app-text' import { connect } from 'react-redux' import { navigate } from '../../slices/navigation' import { Sizes, Typography } from '../../styles/redesign' import settingsLabels from '../../i18n/en/settings' const { menuItems } = settingsLabels const settingsMenuItems = [ {name: menuItems.settings, component: 'SettingsMenu'}, {name: menuItems.about, component: 'About'}, {name: menuItems.license, component: 'License'}, ] const SideMenu = ({ navigate, onPress, shouldShowMenu }) => { const navigateMenuItem = (page) => { onPress() navigate(page) } return( {!shouldShowMenu && } {shouldShowMenu && {settingsMenuItems.map(item => )} } ) } SideMenu.propTypes = { navigate: PropTypes.func.isRequired, onPress: PropTypes.func, shouldShowMenu: PropTypes.bool.isRequired } const MenuItem = ({ item, navigate }) => { return( navigate(item.component)}> {item.name} ) } MenuItem.propTypes = { item: PropTypes.object.isRequired, navigate: PropTypes.func.isRequired, } const styles = StyleSheet.create({ blackBackground: { backgroundColor: 'black', flex: 1, opacity: 0.65, }, iconContainer: { alignSelf: 'flex-end', marginBottom: Sizes.base }, menu: { alignSelf: 'flex-end', backgroundColor: 'white', height: '100%', padding: Sizes.base, position: 'absolute', width: '60%' }, text: { ...Typography.subtitle } }) const mapDispatchToProps = (dispatch) => { return({ navigate: (page) => dispatch(navigate(page)), }) } export default connect( null, mapDispatchToProps, )(SideMenu)