From 86f26e3814041b0036e24997fa3ff1b87136de13 Mon Sep 17 00:00:00 2001 From: Julia Friesel <julia.friesel@gmail.com> Date: Sun, 19 Aug 2018 15:02:01 +0200 Subject: [PATCH] Position footer and fix navigating to cycle day view --- app.js | 27 +++++++++++++++------- components/cycle-day/cycle-day-overview.js | 6 ++--- components/header.js | 2 +- components/home.js | 3 +-- components/menu.js | 6 +++++ styles/index.js | 3 ++- 6 files changed, 32 insertions(+), 15 deletions(-) diff --git a/app.js b/app.js index 58b22ae1..ec6f3087 100644 --- a/app.js +++ b/app.js @@ -23,16 +23,24 @@ export default class App extends Component { } } - navigate(pageName) { - this.setState({currentPage: pageName}) + navigate(pageName, props) { + this.setState({currentPage: pageName, currentProps: props}) } render() { return ( - <View> - <Header title={this.state.currentPage}/> - <CurrentPage page={this.state.currentPage} /> - <Menu navigate={this.navigate.bind(this)}/> + <View style={{height: '100%', justifyContent: 'space-between' }}> + <View> + {this.state.currentPage != 'CycleDay' && <Header title={this.state.currentPage}/>} + <View> + <CurrentPage + page={this.state.currentPage} + navigate={this.navigate.bind(this)} + props={this.state.currentProps} + /> + </View> + </View> + <Menu navigate={this.navigate.bind(this)} /> </View> ) } @@ -40,10 +48,13 @@ export default class App extends Component { class CurrentPage extends Component { render () { - console.log('urrentpage render') const page = { Home, Calendar, CycleDay, SymptomView, Chart, Settings, Stats }[this.props.page] - return React.createElement(page) + const props = this.props.props || {} + return React.createElement(page, { + navigate: this.props.navigate, + ...props + }) } } \ No newline at end of file diff --git a/components/cycle-day/cycle-day-overview.js b/components/cycle-day/cycle-day-overview.js index 0dfa7697..0076aa20 100644 --- a/components/cycle-day/cycle-day-overview.js +++ b/components/cycle-day/cycle-day-overview.js @@ -27,7 +27,7 @@ export default class CycleDayOverView extends Component { constructor(props) { super(props) this.state = { - cycleDay: props.navigation.state.params.cycleDay + cycleDay: props.cycleDay } } @@ -40,7 +40,7 @@ export default class CycleDayOverView extends Component { } navigate(symptom) { - this.props.navigation.navigate('SymptomView', { + this.props.navigate('SymptomView', { symptom, cycleDay: this.state.cycleDay }) @@ -53,7 +53,7 @@ export default class CycleDayOverView extends Component { return ( <ScrollView> <Header - cycleDayOverView={true} + isCycleDayOverView={true} cycleDayNumber={cycleDayNumber} date={cycleDay.date} /> diff --git a/components/header.js b/components/header.js index 1fd285eb..5863e43f 100644 --- a/components/header.js +++ b/components/header.js @@ -10,7 +10,7 @@ import { formatDateForViewHeader } from '../components/cycle-day/labels/format' export default class Header extends Component { render() { return ( - this.props.cycleDayOverView ? + this.props.isCycleDayOverView ? <View style={[styles.header, styles.headerCycleDay]}> <Icon name='arrow-left-drop-circle' diff --git a/components/home.js b/components/home.js index 3ada0424..2962492d 100644 --- a/components/home.js +++ b/components/home.js @@ -6,7 +6,6 @@ import { ScrollView } from 'react-native' import { LocalDate } from 'js-joda' -import Header from './header' import styles from '../styles/index' import cycleModule from '../lib/cycle' import { getOrCreateCycleDay, bleedingDaysSortedByDate, fillWithDummyData, deleteAll } from '../db' @@ -42,7 +41,7 @@ export default class Home extends Component { passTodayToDayView() { const todayDateString = LocalDate.now().toString() const cycleDay = getOrCreateCycleDay(todayDateString) - const navigate = this.props.navigation.navigate + const navigate = this.props.navigate navigate('CycleDay', { cycleDay }) } diff --git a/components/menu.js b/components/menu.js index ea95b1f2..9631c022 100644 --- a/components/menu.js +++ b/components/menu.js @@ -13,6 +13,12 @@ export default class Menu extends Component { placeActionButtons() : <View style={styles.menu}> + <Text + style={styles.dateHeader} + onPress={() => this.props.navigate('Home')} + > + {'Home'} + </Text> <Text style={styles.dateHeader} onPress={() => this.props.navigate('Calendar')} diff --git a/styles/index.js b/styles/index.js index 5fb3d5db..8943efa0 100644 --- a/styles/index.js +++ b/styles/index.js @@ -106,7 +106,8 @@ export default StyleSheet.create({ paddingVertical: 18, paddingHorizontal: 15, alignItems: 'center', - justifyContent: 'center' + justifyContent: 'space-evenly', + flexDirection: 'row', }, headerCycleDay: { flexDirection: 'row', -- GitLab