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

Apply select tab group to pain edit view

parent 4ed3aa48
No related branches found
No related tags found
No related merge requests found
...@@ -98,16 +98,16 @@ export default class CycleDayOverView extends Component { ...@@ -98,16 +98,16 @@ export default class CycleDayOverView extends Component {
data={getLabel('sex', cycleDay.sex)} data={getLabel('sex', cycleDay.sex)}
disabled={dateInFuture} disabled={dateInFuture}
/> />
<SymptomBox
title='Note'
onPress={() => this.navigate('NoteEditView')}
data={getLabel('note', cycleDay.note)}
/>
<SymptomBox <SymptomBox
title='Pain' title='Pain'
onPress={() => this.navigate('PainEditView')} onPress={() => this.navigate('PainEditView')}
data={getLabel('pain', cycleDay.pain)} data={getLabel('pain', cycleDay.pain)}
/> />
<SymptomBox
title='Note'
onPress={() => this.navigate('NoteEditView')}
data={getLabel('note', cycleDay.note)}
/>
{/* this is just to make the last row adhere to the grid {/* this is just to make the last row adhere to the grid
(and) because there are no pseudo properties in RN */} (and) because there are no pseudo properties in RN */}
<FillerBoxes /> <FillerBoxes />
......
import React, { Component } from 'react' import React, { Component } from 'react'
import { import {
CheckBox,
ScrollView, ScrollView,
Text,
TextInput, TextInput,
View View
} from 'react-native' } from 'react-native'
import styles from '../../../styles'
import { saveSymptom } from '../../../db' import { saveSymptom } from '../../../db'
import { import { pain as labels } from '../labels/labels'
pain as painLabels
} from '../labels/labels'
import ActionButtonFooter from './action-button-footer' import ActionButtonFooter from './action-button-footer'
import SelectBoxGroup from '../select-box-group'
const boxes = [{
label: labels.cramps,
stateKey: 'cramps'
}, {
label: labels.ovulationPain,
stateKey: 'ovulationPain'
}, {
label: labels.headache,
stateKey: 'headache'
}, {
label: labels.backache,
stateKey: 'backache'
}, {
label: labels.nausea,
stateKey: 'nausea'
}, {
label: labels.tenderBreasts,
stateKey: 'tenderBreasts'
}, {
label: labels.migraine,
stateKey: 'migraine'
}, {
label: labels.other,
stateKey: 'other'
}]
export default class Pain extends Component { export default class Pain extends Component {
constructor(props) { constructor(props) {
...@@ -26,92 +48,24 @@ export default class Pain extends Component { ...@@ -26,92 +48,24 @@ export default class Pain extends Component {
} }
} }
toggleState = (key) => {
const curr = this.state[key]
this.setState({[key]: !curr})
if (key === 'other' && !curr) {
this.setState({focusTextArea: true})
}
}
render() { render() {
return ( return (
<View style={{ flex: 1 }}> <View style={{ flex: 1 }}>
<ScrollView> <ScrollView>
<View> <View>
<View style={styles.symptomViewRowInline}> <SelectBoxGroup
<Text style={styles.symptomDayView}>{painLabels.cramps}</Text> data={boxes}
<CheckBox onSelect={this.toggleState}
value={this.state.cramps} optionsState={this.state}
onValueChange={(val) => { />
this.setState({cramps: val})
}}
/>
<Text style={styles.symptomDayView}>
{painLabels.ovulationPain}
</Text>
<CheckBox
value={this.state.ovulationPain}
onValueChange={(val) => {
this.setState({ovulationPain: val})
}}
/>
</View>
<View style={styles.symptomViewRowInline}>
<Text style={styles.symptomDayView}>
{painLabels.headache}
</Text>
<CheckBox
value={this.state.headache}
onValueChange={(val) => {
this.setState({headache: val})
}}
/>
<Text style={styles.symptomDayView}>
{painLabels.backache}
</Text>
<CheckBox
value={this.state.backache}
onValueChange={(val) => {
this.setState({backache: val})
}}
/>
</View>
<View style={styles.symptomViewRowInline}>
<Text style={styles.symptomDayView}>
{painLabels.nausea}
</Text>
<CheckBox
value={this.state.nausea}
onValueChange={(val) => {
this.setState({nausea: val})
}}
/>
<Text style={styles.symptomDayView}>
{painLabels.tenderBreasts}
</Text>
<CheckBox
value={this.state.tenderBreasts}
onValueChange={(val) => {
this.setState({tenderBreasts: val})
}}
/>
</View>
<View style={styles.symptomViewRowInline}>
<Text style={styles.symptomDayView}>
{painLabels.migraine}
</Text>
<CheckBox
value={this.state.migraine}
onValueChange={(val) => {
this.setState({migraine: val})
}}
/>
<Text style={styles.symptomDayView}>
{painLabels.other}
</Text>
<CheckBox
value={this.state.other}
onValueChange={(val) => {
this.setState({
other: val,
focusTextArea: true
})
}}
/>
</View>
{ this.state.other && { this.state.other &&
<TextInput <TextInput
autoFocus={this.state.focusTextArea} autoFocus={this.state.focusTextArea}
......
...@@ -12,33 +12,33 @@ import SelectBoxGroup from '../select-box-group' ...@@ -12,33 +12,33 @@ import SelectBoxGroup from '../select-box-group'
import { SymptomSectionHeader } from '../../app-text' import { SymptomSectionHeader } from '../../app-text'
const sexBoxes = [{ const sexBoxes = [{
label: activityLabels.solo, label: sexLabels.solo,
stateKey: 'solo' stateKey: 'solo'
}, { }, {
label: activityLabels.partner, label: sexLabels.partner,
stateKey: 'partner' stateKey: 'partner'
}] }]
const contraceptiveBoxes = [{ const contraceptiveBoxes = [{
label: contraceptiveLabels.condom, label: sexLabels.condom,
stateKey: 'condom' stateKey: 'condom'
}, { }, {
label: contraceptiveLabels.pill, label: sexLabels.pill,
stateKey: 'pill' stateKey: 'pill'
}, { }, {
label: contraceptiveLabels.iud, label: sexLabels.iud,
stateKey: 'iud' stateKey: 'iud'
}, { }, {
label: contraceptiveLabels.patch, label: sexLabels.patch,
stateKey: 'patch' stateKey: 'patch'
}, { }, {
label: contraceptiveLabels.ring, label: sexLabels.ring,
stateKey: 'ring' stateKey: 'ring'
}, { }, {
label: contraceptiveLabels.implant, label: sexLabels.implant,
stateKey: 'implant' stateKey: 'implant'
}, { }, {
label: contraceptiveLabels.other, label: sexLabels.other,
stateKey: 'other' stateKey: 'other'
}] }]
......
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