Add autosave for temperate

This commit is contained in:
Julia Friesel
2019-05-26 09:04:51 +02:00
parent bc358bd9ed
commit 018ec3bcda
+13 -14
View File
@@ -63,19 +63,12 @@ export default class Temp extends SymptomView {
}) })
} }
async onBackButtonPress() { autoSave = () => {
if (typeof this.state.temperature != 'string' || this.state.temperature === '') { if (typeof this.state.temperature != 'string' || this.state.temperature === '') {
this.deleteSymptomEntry() this.deleteSymptomEntry()
return return
} }
const userWantsToSave = await this.warnUserIfTempOutOfRange()
if (!userWantsToSave) return true
this.saveTemperature()
}
saveTemperature = () => {
const dataToSave = { const dataToSave = {
value: Number(this.state.temperature), value: Number(this.state.temperature),
exclude: this.state.exclude, exclude: this.state.exclude,
@@ -103,15 +96,14 @@ export default class Temp extends SymptomView {
// it in a promise // it in a promise
return new Promise(resolve => { return new Promise(resolve => {
if (warningMsg) { if (warningMsg) {
// we set this so the time picker doesn't open at the same time
this.warningAlertOpen = true
Alert.alert( Alert.alert(
sharedLabels.warning, sharedLabels.warning,
warningMsg, warningMsg,
[ [
{ text: sharedLabels.cancel, onPress: () => { { text: sharedLabels.ok, onPress: () => {
resolve(false) this.warningAlertOpen = false
}},
{ text: sharedLabels.save, onPress: () => {
resolve(true)
}} }}
] ]
) )
@@ -154,6 +146,7 @@ export default class Temp extends SymptomView {
onChangeText={this.setTemperature} onChangeText={this.setTemperature}
keyboardType='numeric' keyboardType='numeric'
maxLength={5} maxLength={5}
onBlur={this.warnUserIfTempOutOfRange}
/> />
<AppText style={{ marginLeft: 5 }}>°C</AppText> <AppText style={{ marginLeft: 5 }}>°C</AppText>
</View> </View>
@@ -164,7 +157,13 @@ export default class Temp extends SymptomView {
<View style={styles.framedSegmentInlineChildren}> <View style={styles.framedSegmentInlineChildren}>
<AppTextInput <AppTextInput
style={[styles.temperatureTextInput]} style={[styles.temperatureTextInput]}
onFocus={this.showTimePicker} onFocus={() => {
if (this.warningAlertOpen) {
Keyboard.dismiss()
} else {
this.showTimePicker()
}
}}
value={this.state.time} value={this.state.time}
/> />
<DateTimePicker <DateTimePicker