[WIP] Adds info button to body as alert for:
* mood, pain, temperature
This commit is contained in:
@@ -1,11 +1,20 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
|
Alert,
|
||||||
ScrollView,
|
ScrollView,
|
||||||
TextInput} from 'react-native'
|
TextInput,
|
||||||
|
TouchableOpacity,
|
||||||
|
View
|
||||||
|
} from 'react-native'
|
||||||
|
import FeatherIcon from 'react-native-vector-icons/Feather'
|
||||||
|
|
||||||
|
import infoLabels from '../../../i18n/en/symptom-info'
|
||||||
import { mood as labels } from '../../../i18n/en/cycle-day'
|
import { mood as labels } from '../../../i18n/en/cycle-day'
|
||||||
|
import styles, { iconStyles } from '../../../styles'
|
||||||
|
|
||||||
import SelectBoxGroup from '../select-box-group'
|
import SelectBoxGroup from '../select-box-group'
|
||||||
|
|
||||||
import SymptomSection from './symptom-section'
|
import SymptomSection from './symptom-section'
|
||||||
import styles from '../../../styles'
|
|
||||||
import SymptomView from './symptom-view'
|
import SymptomView from './symptom-view'
|
||||||
|
|
||||||
export default class Mood extends SymptomView {
|
export default class Mood extends SymptomView {
|
||||||
@@ -22,7 +31,15 @@ export default class Mood extends SymptomView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
symptomName = "mood"
|
symptomName = 'mood'
|
||||||
|
|
||||||
|
showInfoBox(){
|
||||||
|
const symptomName = 'mood'
|
||||||
|
Alert.alert(
|
||||||
|
infoLabels[symptomName].title,
|
||||||
|
infoLabels[symptomName].text
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
onBackButtonPress() {
|
onBackButtonPress() {
|
||||||
const nothingEntered = Object.values(this.state).every(val => !val)
|
const nothingEntered = Object.values(this.state).every(val => !val)
|
||||||
@@ -48,9 +65,19 @@ export default class Mood extends SymptomView {
|
|||||||
renderContent() {
|
renderContent() {
|
||||||
return (
|
return (
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
|
<View style={{ flexDirection: 'row' }}>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
explainer={labels.explainer}
|
explainer={labels.explainer}
|
||||||
>
|
>
|
||||||
|
<TouchableOpacity
|
||||||
|
onPress={this.showInfoBox}
|
||||||
|
style={styles.infoButton}
|
||||||
|
>
|
||||||
|
<FeatherIcon
|
||||||
|
name="info"
|
||||||
|
style={iconStyles.symptomInfo}
|
||||||
|
/>
|
||||||
|
</TouchableOpacity>
|
||||||
<SelectBoxGroup
|
<SelectBoxGroup
|
||||||
labels={labels.categories}
|
labels={labels.categories}
|
||||||
onSelect={this.toggleState}
|
onSelect={this.toggleState}
|
||||||
@@ -68,6 +95,7 @@ export default class Mood extends SymptomView {
|
|||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
|
</View>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,21 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
|
Alert,
|
||||||
ScrollView,
|
ScrollView,
|
||||||
TextInput,
|
TextInput,
|
||||||
|
TouchableOpacity,
|
||||||
|
View
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
|
import FeatherIcon from 'react-native-vector-icons/Feather'
|
||||||
|
|
||||||
|
import infoLabels from '../../../i18n/en/symptom-info'
|
||||||
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'
|
||||||
|
import styles, { iconStyles } from '../../../styles'
|
||||||
|
|
||||||
import SelectBoxGroup from '../select-box-group'
|
import SelectBoxGroup from '../select-box-group'
|
||||||
|
|
||||||
import SymptomSection from './symptom-section'
|
import SymptomSection from './symptom-section'
|
||||||
import styles from '../../../styles'
|
|
||||||
import SymptomView from './symptom-view'
|
import SymptomView from './symptom-view'
|
||||||
|
|
||||||
export default class Pain extends SymptomView {
|
export default class Pain extends SymptomView {
|
||||||
@@ -26,6 +34,14 @@ export default class Pain extends SymptomView {
|
|||||||
|
|
||||||
symptomName = 'pain'
|
symptomName = 'pain'
|
||||||
|
|
||||||
|
showInfoBox(){
|
||||||
|
const symptomName = 'pain'
|
||||||
|
Alert.alert(
|
||||||
|
infoLabels[symptomName].title,
|
||||||
|
infoLabels[symptomName].text
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
onBackButtonPress() {
|
onBackButtonPress() {
|
||||||
const nothingEntered = Object.values(this.state).every(val => !val)
|
const nothingEntered = Object.values(this.state).every(val => !val)
|
||||||
if (nothingEntered) {
|
if (nothingEntered) {
|
||||||
@@ -51,9 +67,19 @@ export default class Pain extends SymptomView {
|
|||||||
renderContent() {
|
renderContent() {
|
||||||
return (
|
return (
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
|
<View style={{ flexDirection: 'row' }}>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
explainer={labels.explainer}
|
explainer={labels.explainer}
|
||||||
>
|
>
|
||||||
|
<TouchableOpacity
|
||||||
|
onPress={this.showInfoBox}
|
||||||
|
style={styles.infoButton}
|
||||||
|
>
|
||||||
|
<FeatherIcon
|
||||||
|
name="info"
|
||||||
|
style={iconStyles.symptomInfo}
|
||||||
|
/>
|
||||||
|
</TouchableOpacity>
|
||||||
<SelectBoxGroup
|
<SelectBoxGroup
|
||||||
labels={labels.categories}
|
labels={labels.categories}
|
||||||
onSelect={this.toggleState}
|
onSelect={this.toggleState}
|
||||||
@@ -71,6 +97,7 @@ export default class Pain extends SymptomView {
|
|||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
|
</View>
|
||||||
</ScrollView>)
|
</ScrollView>)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,23 +1,28 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import {
|
import {
|
||||||
View,
|
|
||||||
Switch,
|
|
||||||
Keyboard,
|
|
||||||
Alert,
|
Alert,
|
||||||
ScrollView
|
Keyboard,
|
||||||
|
ScrollView,
|
||||||
|
Switch,
|
||||||
|
TouchableOpacity,
|
||||||
|
View
|
||||||
} from 'react-native'
|
} from 'react-native'
|
||||||
import DateTimePicker from 'react-native-modal-datetime-picker-nevo'
|
import DateTimePicker from 'react-native-modal-datetime-picker-nevo'
|
||||||
import padWithZeros from '../../helpers/pad-time-with-zeros'
|
import FeatherIcon from 'react-native-vector-icons/Feather'
|
||||||
|
|
||||||
import { getPreviousTemperature } from '../../../db'
|
|
||||||
import styles from '../../../styles'
|
|
||||||
import { LocalTime, ChronoUnit } from 'js-joda'
|
import { LocalTime, ChronoUnit } from 'js-joda'
|
||||||
import { temperature as labels } from '../../../i18n/en/cycle-day'
|
|
||||||
|
import config from '../../../config'
|
||||||
|
import { getPreviousTemperature } from '../../../db'
|
||||||
|
import infoLabels from '../../../i18n/en/symptom-info'
|
||||||
import { scaleObservable } from '../../../local-storage'
|
import { scaleObservable } from '../../../local-storage'
|
||||||
import { shared as sharedLabels } from '../../../i18n/en/labels'
|
import { shared as sharedLabels } from '../../../i18n/en/labels'
|
||||||
import config from '../../../config'
|
import styles, { iconStyles } from '../../../styles'
|
||||||
import AppTextInput from '../../app-text-input'
|
import { temperature as labels } from '../../../i18n/en/cycle-day'
|
||||||
|
|
||||||
import AppText from '../../app-text'
|
import AppText from '../../app-text'
|
||||||
|
import AppTextInput from '../../app-text-input'
|
||||||
|
import padWithZeros from '../../helpers/pad-time-with-zeros'
|
||||||
|
|
||||||
import SymptomSection from './symptom-section'
|
import SymptomSection from './symptom-section'
|
||||||
import SymptomView from './symptom-view'
|
import SymptomView from './symptom-view'
|
||||||
|
|
||||||
@@ -55,6 +60,14 @@ export default class Temp extends SymptomView {
|
|||||||
|
|
||||||
symptomName = 'temperature'
|
symptomName = 'temperature'
|
||||||
|
|
||||||
|
showInfoBox(){
|
||||||
|
const symptomName = 'temperature'
|
||||||
|
Alert.alert(
|
||||||
|
infoLabels[symptomName].title,
|
||||||
|
infoLabels[symptomName].text
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
async onBackButtonPress() {
|
async onBackButtonPress() {
|
||||||
if (typeof this.state.temperature != 'string' || this.state.temperature === '') {
|
if (typeof this.state.temperature != 'string' || this.state.temperature === '') {
|
||||||
this.deleteSymptomEntry()
|
this.deleteSymptomEntry()
|
||||||
@@ -134,10 +147,21 @@ export default class Temp extends SymptomView {
|
|||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<ScrollView style={styles.page}>
|
<ScrollView style={styles.page}>
|
||||||
|
<View style={{ flexDirection: 'row' }}>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
header={labels.temperature.header}
|
header={labels.temperature.header}
|
||||||
explainer={labels.temperature.explainer}
|
explainer={labels.temperature.explainer}
|
||||||
>
|
>
|
||||||
|
<View style={{ flex: 1 }}></View>
|
||||||
|
<TouchableOpacity
|
||||||
|
onPress={this.showInfoBox}
|
||||||
|
style={styles.infoButton}
|
||||||
|
>
|
||||||
|
<FeatherIcon
|
||||||
|
name="info"
|
||||||
|
style={iconStyles.symptomInfo}
|
||||||
|
/>
|
||||||
|
</TouchableOpacity>
|
||||||
<View style={styles.framedSegmentInlineChildren}>
|
<View style={styles.framedSegmentInlineChildren}>
|
||||||
<AppTextInput
|
<AppTextInput
|
||||||
style={[inputStyle]}
|
style={[inputStyle]}
|
||||||
@@ -151,6 +175,7 @@ export default class Temp extends SymptomView {
|
|||||||
<AppText style={{ marginLeft: 5 }}>°C</AppText>
|
<AppText style={{ marginLeft: 5 }}>°C</AppText>
|
||||||
</View>
|
</View>
|
||||||
</SymptomSection>
|
</SymptomSection>
|
||||||
|
</View>
|
||||||
<SymptomSection
|
<SymptomSection
|
||||||
header={labels.time}
|
header={labels.time}
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user