Handle back button presses
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
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 {
|
|||||||
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 {
|
|||||||
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 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
console.log('cal render')
|
|
||||||
return (
|
return (
|
||||||
<View>
|
<View>
|
||||||
<View style={styles.container}>
|
<View style={styles.container}>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
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 {
|
|||||||
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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user