Make header back arrow function for auto save
This commit is contained in:
+5
-12
@@ -125,19 +125,12 @@ export default class App extends Component {
|
|||||||
goBack={this.handleBackButtonPress}
|
goBack={this.handleBackButtonPress}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
{this.isSymptomView() &&
|
|
||||||
<Header
|
|
||||||
title={title}
|
|
||||||
isSymptomView={true}
|
|
||||||
goBack={this.handleBackButtonPress}
|
|
||||||
date={currentProps.date}
|
|
||||||
goToSymptomInfo={() => this.navigate(INFO_SYMPTOM_PAGE, {
|
|
||||||
symptomView: currentPage,
|
|
||||||
...currentProps
|
|
||||||
})}
|
|
||||||
/>}
|
|
||||||
|
|
||||||
<Page navigate={this.navigate} {...currentProps} />
|
<Page
|
||||||
|
navigate={this.navigate}
|
||||||
|
{...currentProps}
|
||||||
|
handleBackButtonPress={this.handleBackButtonPress}
|
||||||
|
/>
|
||||||
|
|
||||||
{!this.isSymptomView() &&
|
{!this.isSymptomView() &&
|
||||||
<Menu navigate={this.navigate} currentPage={currentPage} />
|
<Menu navigate={this.navigate} currentPage={currentPage} />
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
View,
|
|
||||||
Switch,
|
Switch,
|
||||||
ScrollView
|
ScrollView
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
@@ -34,7 +33,7 @@ export default class Bleeding extends SymptomView {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
renderContent() {
|
||||||
const bleedingRadioProps = [
|
const bleedingRadioProps = [
|
||||||
{ label: bleeding.labels[0], value: 0 },
|
{ label: bleeding.labels[0], value: 0 },
|
||||||
{ label: bleeding.labels[1], value: 1 },
|
{ label: bleeding.labels[1], value: 1 },
|
||||||
@@ -42,7 +41,6 @@ export default class Bleeding extends SymptomView {
|
|||||||
{ label: bleeding.labels[3], value: 3 },
|
{ label: bleeding.labels[3], value: 3 },
|
||||||
]
|
]
|
||||||
return (
|
return (
|
||||||
<View style={{ flex: 1 }}>
|
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
header={bleeding.heaviness.header}
|
header={bleeding.heaviness.header}
|
||||||
@@ -67,7 +65,6 @@ export default class Bleeding extends SymptomView {
|
|||||||
/>
|
/>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</View>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
View,
|
|
||||||
Switch,
|
Switch,
|
||||||
ScrollView
|
ScrollView
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
@@ -35,7 +34,7 @@ export default class Cervix extends SymptomView {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
renderContent() {
|
||||||
const cervixOpeningRadioProps = [
|
const cervixOpeningRadioProps = [
|
||||||
{ label: labels.opening.categories[0], value: 0 },
|
{ label: labels.opening.categories[0], value: 0 },
|
||||||
{ label: labels.opening.categories[1], value: 1 },
|
{ label: labels.opening.categories[1], value: 1 },
|
||||||
@@ -52,7 +51,6 @@ export default class Cervix extends SymptomView {
|
|||||||
]
|
]
|
||||||
const mandatoryNotCompleted = typeof this.state.opening != 'number' || typeof this.state.firmness != 'number'
|
const mandatoryNotCompleted = typeof this.state.opening != 'number' || typeof this.state.firmness != 'number'
|
||||||
return (
|
return (
|
||||||
<View style={{ flex: 1 }}>
|
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
header="Opening"
|
header="Opening"
|
||||||
@@ -97,7 +95,6 @@ export default class Cervix extends SymptomView {
|
|||||||
/>
|
/>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</View>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,14 +28,13 @@ export default class Desire extends SymptomView {
|
|||||||
this.saveSymptomEntry({ value: this.state.currentValue })
|
this.saveSymptomEntry({ value: this.state.currentValue })
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
renderContent() {
|
||||||
const desireRadioProps = [
|
const desireRadioProps = [
|
||||||
{ label: intensity[0], value: 0 },
|
{ label: intensity[0], value: 0 },
|
||||||
{ label: intensity[1], value: 1 },
|
{ label: intensity[1], value: 1 },
|
||||||
{ label: intensity[2], value: 2 }
|
{ label: intensity[2], value: 2 }
|
||||||
]
|
]
|
||||||
return (
|
return (
|
||||||
<View style={{ flex: 1 }}>
|
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
header={desire.header}
|
header={desire.header}
|
||||||
@@ -48,7 +47,6 @@ export default class Desire extends SymptomView {
|
|||||||
/>
|
/>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</View>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,9 +47,8 @@ export default class Mood extends SymptomView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
renderContent() {
|
||||||
return (
|
return (
|
||||||
<View style={{ flex: 1 }}>
|
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
explainer={labels.explainer}
|
explainer={labels.explainer}
|
||||||
@@ -72,7 +71,6 @@ export default class Mood extends SymptomView {
|
|||||||
}
|
}
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</View>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export default class Mucus extends SymptomView {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
renderContent() {
|
||||||
const mucusFeeling = [
|
const mucusFeeling = [
|
||||||
{ label: labels.feeling.categories[0], value: 0 },
|
{ label: labels.feeling.categories[0], value: 0 },
|
||||||
{ label: labels.feeling.categories[1], value: 1 },
|
{ label: labels.feeling.categories[1], value: 1 },
|
||||||
@@ -52,7 +52,6 @@ export default class Mucus extends SymptomView {
|
|||||||
]
|
]
|
||||||
const mandatoryNotCompletedYet = typeof this.state.feeling != 'number' || typeof this.state.texture != 'number'
|
const mandatoryNotCompletedYet = typeof this.state.feeling != 'number' || typeof this.state.texture != 'number'
|
||||||
return (
|
return (
|
||||||
<View style={{ flex: 1 }}>
|
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
header='Feeling'
|
header='Feeling'
|
||||||
@@ -87,7 +86,6 @@ export default class Mucus extends SymptomView {
|
|||||||
/>
|
/>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</View>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,9 +34,8 @@ export default class Note extends SymptomView {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
renderContent() {
|
||||||
return (
|
return (
|
||||||
<View style={{ flex: 1 }}>
|
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
explainer={noteExplainer}
|
explainer={noteExplainer}
|
||||||
@@ -52,7 +51,6 @@ export default class Note extends SymptomView {
|
|||||||
/>
|
/>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</View>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import React from 'react'
|
|||||||
import {
|
import {
|
||||||
ScrollView,
|
ScrollView,
|
||||||
TextInput,
|
TextInput,
|
||||||
View
|
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import { pain as labels } from '../../../i18n/en/cycle-day'
|
import { pain as labels } from '../../../i18n/en/cycle-day'
|
||||||
import { shared as sharedLabels } from '../../../i18n/en/labels'
|
import { shared as sharedLabels } from '../../../i18n/en/labels'
|
||||||
@@ -49,9 +48,8 @@ export default class Pain extends SymptomView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
renderContent() {
|
||||||
return (
|
return (
|
||||||
<View style={{ flex: 1 }}>
|
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
explainer={labels.explainer}
|
explainer={labels.explainer}
|
||||||
@@ -73,8 +71,6 @@ export default class Pain extends SymptomView {
|
|||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
</ScrollView>
|
</ScrollView>)
|
||||||
</View>
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
TextInput,
|
TextInput,
|
||||||
View,
|
|
||||||
ScrollView
|
ScrollView
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import styles from '../../../styles'
|
import styles from '../../../styles'
|
||||||
@@ -49,9 +48,8 @@ export default class Sex extends SymptomView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
renderContent() {
|
||||||
return (
|
return (
|
||||||
<View style={{ flex: 1 }}>
|
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
header={sexLabels.header}
|
header={sexLabels.header}
|
||||||
@@ -86,7 +84,6 @@ export default class Sex extends SymptomView {
|
|||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</View>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
|
import React from 'react'
|
||||||
import { Component } from 'react'
|
import { Component } from 'react'
|
||||||
import { BackHandler } from 'react-native'
|
import { BackHandler, View } from 'react-native'
|
||||||
import { saveSymptom } from '../../../db'
|
import { saveSymptom } from '../../../db'
|
||||||
|
import Header from '../../header/symptom-view'
|
||||||
|
import { headerTitles } from '../../../i18n/en/labels'
|
||||||
|
|
||||||
export default class SymptomView extends Component {
|
export default class SymptomView extends Component {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
super()
|
super()
|
||||||
this.backHandler = BackHandler.addEventListener('hardwareBackPress', this.onBackButtonPress.bind(this))
|
this.backHandler = BackHandler.addEventListener('hardwareBackPress', this.onBackButtonPress.bind(this))
|
||||||
|
this.globalBackhandler = props.handleBackButtonPress
|
||||||
this.symptomName = props.symptomName
|
this.symptomName = props.symptomName
|
||||||
this.date = props.date
|
this.date = props.date
|
||||||
}
|
}
|
||||||
@@ -21,4 +25,20 @@ export default class SymptomView extends Component {
|
|||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
this.backHandler.remove()
|
this.backHandler.remove()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
return (
|
||||||
|
<View style={{flex: 1}}>
|
||||||
|
<Header
|
||||||
|
title={headerTitles[this.symptomName].toLowerCase()}
|
||||||
|
date={this.date}
|
||||||
|
goBack={() => {
|
||||||
|
this.onBackButtonPress()
|
||||||
|
this.globalBackhandler()
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
{this.renderContent()}
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -116,13 +116,12 @@ export default class Temp extends SymptomView {
|
|||||||
this.setState({ isTimePickerVisible: true })
|
this.setState({ isTimePickerVisible: true })
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
renderContent() {
|
||||||
const inputStyle = [styles.temperatureTextInput]
|
const inputStyle = [styles.temperatureTextInput]
|
||||||
if (this.state.isSuggestion) {
|
if (this.state.isSuggestion) {
|
||||||
inputStyle.push(styles.temperatureTextInputSuggestion)
|
inputStyle.push(styles.temperatureTextInputSuggestion)
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<View style={{ flex: 1 }}>
|
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
header={labels.temperature.header}
|
header={labels.temperature.header}
|
||||||
@@ -189,7 +188,6 @@ export default class Temp extends SymptomView {
|
|||||||
/>
|
/>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</View>
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { Dimensions } from 'react-native'
|
|||||||
import CycleDayHeader from './cycle-day'
|
import CycleDayHeader from './cycle-day'
|
||||||
import DefaultHeader from './default'
|
import DefaultHeader from './default'
|
||||||
import BackButtonHeader from './back-button'
|
import BackButtonHeader from './back-button'
|
||||||
import SymptomViewHeader from './symptom-view'
|
|
||||||
|
|
||||||
export default function Header(p) {
|
export default function Header(p) {
|
||||||
const middle = Dimensions.get('window').width / 2
|
const middle = Dimensions.get('window').width / 2
|
||||||
@@ -11,11 +10,7 @@ export default function Header(p) {
|
|||||||
|
|
||||||
if (props.isCycleDayOverView) {
|
if (props.isCycleDayOverView) {
|
||||||
return (<CycleDayHeader {...props} />)
|
return (<CycleDayHeader {...props} />)
|
||||||
}
|
} else if (props.showBackButton) {
|
||||||
else if (props.isSymptomView) {
|
|
||||||
return (<SymptomViewHeader {...props} />)
|
|
||||||
}
|
|
||||||
else if (props.showBackButton) {
|
|
||||||
return (<BackButtonHeader {...props} />)
|
return (<BackButtonHeader {...props} />)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ import React from 'react'
|
|||||||
import {
|
import {
|
||||||
View,
|
View,
|
||||||
Text,
|
Text,
|
||||||
TouchableOpacity
|
TouchableOpacity,
|
||||||
|
Dimensions
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import styles, { iconStyles } from '../../styles'
|
import styles, { iconStyles } from '../../styles'
|
||||||
import FeatherIcon from 'react-native-vector-icons/Feather'
|
import FeatherIcon from 'react-native-vector-icons/Feather'
|
||||||
@@ -10,11 +11,12 @@ import NavigationArrow from './navigation-arrow'
|
|||||||
import formatDate from '../helpers/format-date'
|
import formatDate from '../helpers/format-date'
|
||||||
|
|
||||||
export default function SymptomViewHeader(props) {
|
export default function SymptomViewHeader(props) {
|
||||||
|
const middle = Dimensions.get('window').width / 2
|
||||||
return (
|
return (
|
||||||
<View style={[styles.header, styles.headerCycleDay, styles.headerSymptom]}>
|
<View style={[styles.header, styles.headerCycleDay, styles.headerSymptom]}>
|
||||||
<View
|
<View
|
||||||
style={styles.accentCircle}
|
style={styles.accentCircle}
|
||||||
left={props.middle - styles.accentCircle.width / 2}
|
left={middle - styles.accentCircle.width / 2}
|
||||||
/>
|
/>
|
||||||
<NavigationArrow
|
<NavigationArrow
|
||||||
direction='left'
|
direction='left'
|
||||||
|
|||||||
+9
-9
@@ -32,15 +32,15 @@ export const headerTitles = {
|
|||||||
Password: settingsTitles.password,
|
Password: settingsTitles.password,
|
||||||
About: settingsTitles.about,
|
About: settingsTitles.about,
|
||||||
License: settingsTitles.license,
|
License: settingsTitles.license,
|
||||||
BleedingEditView: 'Bleeding',
|
bleeding: 'Bleeding',
|
||||||
TemperatureEditView: 'Temperature',
|
temperature: 'Temperature',
|
||||||
MucusEditView: 'Mucus',
|
mucus: 'Mucus',
|
||||||
CervixEditView: 'Cervix',
|
cervix: 'Cervix',
|
||||||
NoteEditView: 'Note',
|
note: 'Note',
|
||||||
DesireEditView: 'Desire',
|
desire: 'Desire',
|
||||||
SexEditView: 'Sex',
|
sex: 'Sex',
|
||||||
PainEditView: 'Pain',
|
pain: 'Pain',
|
||||||
MoodEditView: 'Mood',
|
mood: 'Mood',
|
||||||
InfoSymptom: 'Info'
|
InfoSymptom: 'Info'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user