diff --git a/components/settings/reminders/index.js b/components/settings/reminders/index.js index ca234d1345afa26d25118453d0510da75cf4e3e1..e21a0dd42c143e75175e7158c468c83f3420ed3b 100644 --- a/components/settings/reminders/index.js +++ b/components/settings/reminders/index.js @@ -2,9 +2,12 @@ import React, { Component } from 'react' import { ScrollView, } from 'react-native' +import SettingsSegment from '../settings-segment' import TempReminderPicker from './temp-reminder-picker' import PeriodReminderPicker from './period-reminder' +import labels from '../../../i18n/en/settings' + export default class Settings extends Component { constructor(props) { super(props) @@ -14,8 +17,12 @@ export default class Settings extends Component { render() { return ( <ScrollView> - <TempReminderPicker/> - <PeriodReminderPicker/> + <SettingsSegment title={labels.tempReminder.title}> + <TempReminderPicker/> + </SettingsSegment> + <SettingsSegment title={labels.periodReminder.title}> + <PeriodReminderPicker/> + </SettingsSegment> </ScrollView> ) } diff --git a/components/settings/reminders/period-reminder.js b/components/settings/reminders/period-reminder.js index 3c07c1028634ba27146ea2a3964a88d01135e1bc..f7e177c654864ad0247706c59fe029976b9673fe 100644 --- a/components/settings/reminders/period-reminder.js +++ b/components/settings/reminders/period-reminder.js @@ -8,7 +8,6 @@ import { periodReminderObservable, savePeriodReminder } from '../../../local-storage' -import styles from '../../../styles/index' import labels from '../../../i18n/en/settings' export default class PeriodReminderPicker extends Component { @@ -19,22 +18,17 @@ export default class PeriodReminderPicker extends Component { render() { return ( - <View style={styles.settingsSegment}> - <AppText style={styles.settingsSegmentTitle}> - {labels.periodReminder.title} - </AppText> - <View style={{ flexDirection: 'row', alignItems: 'center' }}> - <View style={{ flex: 1 }}> - <AppText>{labels.periodReminder.reminderText}</AppText> - </View> - <Switch - value={this.state.enabled} - onValueChange={switchOn => { - this.setState({ enabled: switchOn }) - savePeriodReminder({enabled: switchOn}) - }} - /> + <View style={{ flexDirection: 'row', alignItems: 'center' }}> + <View style={{ flex: 1 }}> + <AppText>{labels.periodReminder.reminderText}</AppText> </View> + <Switch + value={this.state.enabled} + onValueChange={switchOn => { + this.setState({ enabled: switchOn }) + savePeriodReminder({enabled: switchOn}) + }} + /> </View> ) } diff --git a/components/settings/reminders/temp-reminder-picker.js b/components/settings/reminders/temp-reminder-picker.js index 09dda4255458150b300530f713f4a6dc28405cee..a481d61f392093b333bae0e4b3bb70a69ad0c9b2 100644 --- a/components/settings/reminders/temp-reminder-picker.js +++ b/components/settings/reminders/temp-reminder-picker.js @@ -10,64 +10,63 @@ import { tempReminderObservable, saveTempReminder } from '../../../local-storage' -import styles from '../../../styles/index' import labels from '../../../i18n/en/settings' import padWithZeros from '../../helpers/pad-time-with-zeros' export default class TempReminderPicker extends Component { constructor(props) { super(props) - this.state = Object.assign({}, tempReminderObservable.value) + const { time, enabled } = tempReminderObservable.value + this.state = { + time, + enabled, + isTimePickerVisible: false + } } render() { return ( <TouchableOpacity - style={styles.settingsSegment} + style={{ flexDirection: 'row', alignItems: 'center' }} onPress={() => this.setState({ isTimePickerVisible: true })} > - <AppText style={styles.settingsSegmentTitle}> - {labels.tempReminder.title} - </AppText> - <View style={{ flexDirection: 'row', alignItems: 'center' }}> - <View style={{ flex: 1 }}> - {this.state.time && this.state.enabled ? - <AppText>{labels.tempReminder.timeSet(this.state.time)}</AppText> - : - <AppText>{labels.tempReminder.noTimeSet}</AppText> - } - </View> - <Switch - value={this.state.enabled} - onValueChange={switchOn => { - this.setState({ enabled: switchOn }) - if (switchOn && !this.state.time) { - this.setState({ isTimePickerVisible: true }) - } - if (!switchOn) saveTempReminder({ enabled: false }) - }} - /> - <DateTimePicker - mode="time" - isVisible={this.state.isTimePickerVisible} - onConfirm={jsDate => { - const time = padWithZeros(jsDate) - this.setState({ - time, - isTimePickerVisible: false, - enabled: true - }) - saveTempReminder({ - time, - enabled: true - }) - }} - onCancel={() => { - this.setState({ isTimePickerVisible: false }) - if (!this.state.time) this.setState({enabled: false}) - }} - /> + <View style={{ flex: 1 }}> + {this.state.time && this.state.enabled ? + <AppText>{labels.tempReminder.timeSet(this.state.time)}</AppText> + : + <AppText>{labels.tempReminder.noTimeSet}</AppText> + } </View> + <Switch + value={this.state.enabled} + onValueChange={switchOn => { + this.setState({ enabled: switchOn }) + if (switchOn && !this.state.time) { + this.setState({ isTimePickerVisible: true }) + } + if (!switchOn) saveTempReminder({ enabled: false }) + }} + /> + <DateTimePicker + mode="time" + isVisible={this.state.isTimePickerVisible} + onConfirm={jsDate => { + const time = padWithZeros(jsDate) + this.setState({ + time, + isTimePickerVisible: false, + enabled: true + }) + saveTempReminder({ + time, + enabled: true + }) + }} + onCancel={() => { + this.setState({ isTimePickerVisible: false }) + if (!this.state.time) this.setState({enabled: false}) + }} + /> </TouchableOpacity> ) }