Skip to content
Snippets Groups Projects
Commit a67bfda4 authored by Julia Friesel's avatar Julia Friesel
Browse files

Handle back button presses

parent 86f26e38
No related branches found
No related tags found
No related merge requests found
import React, { Component } from 'react' import React, { Component } from 'react'
import { View } from 'react-native' import { View, BackHandler } from 'react-native'
import Header from './components/header' import Header from './components/header'
import Menu from './components/menu' import Menu from './components/menu'
import Home from './components/home' import Home from './components/home'
...@@ -21,6 +21,20 @@ export default class App extends Component { ...@@ -21,6 +21,20 @@ export default class App extends Component {
this.state = { this.state = {
currentPage: 'Home' currentPage: 'Home'
} }
const handleBackButtonPress = function() {
if (this.state.currentPage === 'Home') return false
// this is handled in the SymptomView
if (this.state.currentPage === 'SymptomView') return true
this.navigate('Home')
return true
}.bind(this)
this.backHandler = BackHandler.addEventListener('hardwareBackPress', handleBackButtonPress)
}
componentWillUnmount() {
this.backHandler.remove()
} }
navigate(pageName, props) { navigate(pageName, props) {
......
...@@ -10,7 +10,6 @@ export default class CalendarView extends Component { ...@@ -10,7 +10,6 @@ export default class CalendarView extends Component {
this.state = { this.state = {
bleedingDaysInCalFormat: toCalFormat(bleedingDaysSortedByDate) bleedingDaysInCalFormat: toCalFormat(bleedingDaysSortedByDate)
} }
console.log(Object.keys(this.state.bleedingDaysInCalFormat))
this.setStateWithCalFormattedDays = (function (CalendarComponent) { this.setStateWithCalFormattedDays = (function (CalendarComponent) {
return function(_, changes) { return function(_, changes) {
...@@ -35,7 +34,6 @@ export default class CalendarView extends Component { ...@@ -35,7 +34,6 @@ export default class CalendarView extends Component {
} }
render() { render() {
console.log('cal render')
return ( return (
<View> <View>
<View style={styles.container}> <View style={styles.container}>
......
import React, { Component } from 'react' import React, { Component } from 'react'
import { ScrollView } from 'react-native' import { ScrollView, BackHandler } from 'react-native'
import Header from '../../header' import Header from '../../header'
import actionButtonModule from '../action-buttons' import actionButtonModule from '../action-buttons'
import BleedingEditView from './bleeding' import BleedingEditView from './bleeding'
...@@ -34,13 +34,24 @@ export default class SymptomView extends Component { ...@@ -34,13 +34,24 @@ export default class SymptomView extends Component {
super(props) super(props)
this.state = { this.state = {
visibleComponent: props.navigation.state.params.symptom, visibleComponent: props.symptom,
cycleDay: props.navigation.state.params.cycleDay cycleDay: props.cycleDay
} }
this.makeActionButtons = actionButtonModule(() => { this.makeActionButtons = actionButtonModule(() => {
this.props.navigation.navigate('CycleDay', {cycleDay: this.state.cycleDay}) this.props.navigate('CycleDay', {cycleDay: this.state.cycleDay})
}) })
const handleBackButtonPress = function() {
this.props.navigate('CycleDay', {cycleDay: this.state.cycleDay})
return true
}.bind(this)
this.backHandler = BackHandler.addEventListener('hardwareBackPress', handleBackButtonPress)
}
componentWillUnmount() {
this.backHandler.remove()
} }
render() { render() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment