diff --git a/components/header.js b/components/header.js
deleted file mode 100644
index 9ebbe58..0000000
--- a/components/header.js
+++ /dev/null
@@ -1,70 +0,0 @@
-import React, { Component } from 'react'
-import {
- View,
- Text,
- Dimensions
-} from 'react-native'
-import moment from 'moment'
-import styles, { iconStyles } from '../styles'
-import Icon from 'react-native-vector-icons/Entypo'
-import FeatherIcon from 'react-native-vector-icons/Feather'
-
-export default class Header extends Component {
- render() {
- const middle = Dimensions.get('window').width / 2
- return (
- this.props.isCycleDayOverView ?
-
-
- this.props.goToCycleDay('before')}
- />
-
-
- {moment(this.props.date).format('MMMM Do YYYY')}
-
- {this.props.cycleDayNumber &&
-
- Cycle day {this.props.cycleDayNumber}
- }
-
- this.props.goToCycleDay('after')}
- />
-
- : this.props.isSymptomView ?
-
-
- this.props.goBack()}
-
- />
-
-
- {this.props.title}
-
-
-
-
- :
-
-
-
- {this.props.title}
-
-
- )
- }
-}
\ No newline at end of file
diff --git a/components/header/cycle-day.js b/components/header/cycle-day.js
new file mode 100644
index 0000000..a78cf1b
--- /dev/null
+++ b/components/header/cycle-day.js
@@ -0,0 +1,28 @@
+import React from 'react'
+import {
+ View,
+ Text} from 'react-native'
+import moment from 'moment'
+import styles from '../../styles'
+import NavigationArrow from './navigation-arrow'
+
+export default function CycleDayHeader(props) {
+ return (
+
+
+
+
+ {moment(props.date).format('MMMM Do YYYY')}
+
+ {props.cycleDayNumber &&
+
+ Cycle day {props.cycleDayNumber}
+ }
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/components/header/index.js b/components/header/index.js
new file mode 100644
index 0000000..c935f6e
--- /dev/null
+++ b/components/header/index.js
@@ -0,0 +1,27 @@
+import React from 'react'
+import {
+ View,
+ Text,
+ Dimensions
+} from 'react-native'
+import styles from '../../styles'
+import CycleDayHeader from './cycle-day'
+import SymptomViewHeader from './symptom-view'
+
+export default function Header(p) {
+ const middle = Dimensions.get('window').width / 2
+ const props = Object.assign({}, p, {middle})
+ return (
+ props.isCycleDayOverView ?
+
+ : props.isSymptomView ?
+
+ :
+
+
+
+ {props.title}
+
+
+ )
+}
\ No newline at end of file
diff --git a/components/header/navigation-arrow.js b/components/header/navigation-arrow.js
new file mode 100644
index 0000000..6a7b95b
--- /dev/null
+++ b/components/header/navigation-arrow.js
@@ -0,0 +1,31 @@
+import React from 'react'
+import { TouchableOpacity } from 'react-native'
+import styles, { iconStyles } from '../../styles'
+import Icon from 'react-native-vector-icons/Entypo'
+
+export default function NavigationArrow(props) {
+ const iconName = {
+ left: 'chevron-thin-left',
+ right: 'chevron-thin-right'
+ }[props.direction]
+ let pressHandler
+ if (props.goBack) {
+ pressHandler = () => props.goBack()
+ } else {
+ pressHandler = () => {
+ const target = props.direction === 'left' ? 'before' : 'after'
+ props.goToCycleDay(target)
+ }
+ }
+ return (
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/components/header/symptom-view.js b/components/header/symptom-view.js
new file mode 100644
index 0000000..df8b4be
--- /dev/null
+++ b/components/header/symptom-view.js
@@ -0,0 +1,31 @@
+import React from 'react'
+import {
+ View,
+ Text} from 'react-native'
+import styles, { iconStyles } from '../../styles'
+import FeatherIcon from 'react-native-vector-icons/Feather'
+import NavigationArrow from './navigation-arrow'
+
+export default function SymptomViewHeader(props) {
+ return (
+
+
+
+
+
+ {props.title}
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/styles/index.js b/styles/index.js
index 31e62f7..9c3b016 100644
--- a/styles/index.js
+++ b/styles/index.js
@@ -191,11 +191,20 @@ export default StyleSheet.create({
},
header: {
backgroundColor: primaryColor,
- paddingHorizontal: 15,
alignItems: 'center',
justifyContent: 'center',
height: 80
},
+ headerCycleDay: {
+ flexDirection: 'row',
+ justifyContent: 'space-between',
+ },
+ headerSymptom: {
+ paddingRight: 20
+ },
+ navigationArrow: {
+ padding: 20
+ },
menu: {
backgroundColor: primaryColor,
alignItems: 'center',
@@ -215,18 +224,6 @@ export default StyleSheet.create({
menuTextInActive: {
color: colorInActive
},
- headerCycleDay: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- },
- headerSymptom: {
- flexDirection: 'row',
- justifyContent: 'space-between',
- },
- navigationArrow: {
- fontSize: 60,
- color: fontOnPrimaryColor
- },
temperatureTextInput: {
fontSize: 20,
color: 'black',