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)