diff --git a/components/header/index.js b/components/header/index.js
index 7072d2f..d810ed6 100644
--- a/components/header/index.js
+++ b/components/header/index.js
@@ -23,7 +23,7 @@ export default class Header extends Component {
return (
-
+
)
}
diff --git a/components/header/menu-item.js b/components/header/menu-item.js
new file mode 100644
index 0000000..d848059
--- /dev/null
+++ b/components/header/menu-item.js
@@ -0,0 +1,47 @@
+import React from 'react'
+import { StyleSheet, TouchableOpacity } from 'react-native'
+import PropTypes from 'prop-types'
+
+import AppText from '../common/app-text'
+
+import { connect } from 'react-redux'
+import { navigate } from '../../slices/navigation'
+
+import { Typography } from '../../styles/redesign'
+
+const MenuItem = ({ item, navigate, closeMenu }) => {
+ const { component, name } = item
+ const onPress = () => {
+ closeMenu()
+ navigate(component)
+ }
+
+ return(
+
+ {name}
+
+ )
+}
+
+MenuItem.propTypes = {
+ item: PropTypes.object.isRequired,
+ navigate: PropTypes.func.isRequired,
+ closeMenu: PropTypes.func.isRequired
+}
+
+const styles = StyleSheet.create({
+ text: {
+ ...Typography.subtitle
+ }
+})
+
+const mapDispatchToProps = (dispatch) => {
+ return({
+ navigate: (page) => dispatch(navigate(page)),
+ })
+}
+
+export default connect(
+ null,
+ mapDispatchToProps,
+)(MenuItem)
diff --git a/components/header/side-menu.js b/components/header/side-menu.js
index 0b48e3e..3591eee 100644
--- a/components/header/side-menu.js
+++ b/components/header/side-menu.js
@@ -3,52 +3,44 @@ 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 MenuItem from './menu-item'
-import { connect } from 'react-redux'
-import { navigate } from '../../slices/navigation'
-
-import { Sizes, Typography } from '../../styles/redesign'
+import { Sizes } 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'},
+ { 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)
- }
-
+const SideMenu = ({ shouldShowMenu, toggleMenu }) => {
return(
{!shouldShowMenu &&
-
+
}
{shouldShowMenu &&
-
-
+
+
{settingsMenuItems.map(item =>
)}
@@ -59,24 +51,8 @@ const SideMenu = ({ navigate, onPress, shouldShowMenu }) => {
}
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,
+ shouldShowMenu: PropTypes.bool.isRequired,
+ toggleMenu: PropTypes.func
}
const styles = StyleSheet.create({
@@ -96,19 +72,7 @@ const styles = StyleSheet.create({
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)
+export default SideMenu