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',