From 1575aa29cd48556b5e52ce87527b65bd2ab35961 Mon Sep 17 00:00:00 2001 From: mashazyu Date: Mon, 30 Mar 2020 09:19:46 +0200 Subject: [PATCH] Separates TemperatureReminder component --- components/settings/index.js | 2 +- components/settings/reminders.js | 99 ------------------- components/settings/reminders/reminders.js | 42 ++++++++ .../reminders/temperature-reminder.js | 65 ++++++++++++ 4 files changed, 108 insertions(+), 100 deletions(-) delete mode 100644 components/settings/reminders.js create mode 100644 components/settings/reminders/reminders.js create mode 100644 components/settings/reminders/temperature-reminder.js diff --git a/components/settings/index.js b/components/settings/index.js index 4a8fc25..f4e5861 100644 --- a/components/settings/index.js +++ b/components/settings/index.js @@ -1,4 +1,4 @@ -import Reminders from './reminders' +import Reminders from './reminders/reminders' import NfpSettings from './nfp-settings' import DataManagement from './data-management' import Password from './password' diff --git a/components/settings/reminders.js b/components/settings/reminders.js deleted file mode 100644 index 76ed70c..0000000 --- a/components/settings/reminders.js +++ /dev/null @@ -1,99 +0,0 @@ -import React, { Component } from 'react' -import DateTimePicker from 'react-native-modal-datetime-picker-nevo' - -import AppPage from '../common/app-page' -import AppSwitch from '../common/app-switch' -import Segment from '../common/segment' - -import { - periodReminderObservable, - savePeriodReminder, - saveTempReminder, - tempReminderObservable -} from '../../local-storage' -import padWithZeros from '../helpers/pad-time-with-zeros' - -import labels from '../../i18n/en/settings' - -export default class Reminders extends Component { - constructor(props) { - super(props) - - const { time, enabled } = tempReminderObservable.value - this.state = { - periodReminder: periodReminderObservable.value.enabled, - temperatureReminder: { - time, - enabled, - isTimePickerVisible: false - } - } - } - - periodReminderToggle = (value) => { - this.setState({ periodReminder: value }) - savePeriodReminder({ enabled: value }) - } - - temperatureReminderToggle = (value) => { - const { time } = this.state.temperatureReminder - const temperatureReminder = { enabled: value } - - if (value && !time) temperatureReminder.isTimePickerVisible = true - if (!value) saveTempReminder({ enabled: false }) - - this.setState({ temperatureReminder }) - } - - onPickDate = (date) => { - const time = padWithZeros(date) - const temperatureReminder = - { time, isTimePickerVisible: false, enabled: true } - - this.setState({ temperatureReminder }) - saveTempReminder({ time, enabled: true }) - } - - onPickDateCancel = () => { - const { time } = this.state.temperatureReminder - const temperatureReminder = { isTimePickerVisible: false } - - if (!time) temperatureReminder.enabled = false - - this.setState({ temperatureReminder }) - } - - render() { - const { periodReminder, temperatureReminder } = this.state - - const tempReminderText = - temperatureReminder.time && temperatureReminder.enabled ? - labels.tempReminder.timeSet(temperatureReminder.time) - : labels.tempReminder.noTimeSet - - return ( - - - - - - - - - - ) - } -} diff --git a/components/settings/reminders/reminders.js b/components/settings/reminders/reminders.js new file mode 100644 index 0000000..ddc5930 --- /dev/null +++ b/components/settings/reminders/reminders.js @@ -0,0 +1,42 @@ +import React, { Component } from 'react' + +import AppPage from '../../common/app-page' +import AppSwitch from '../../common/app-switch' +import Segment from '../../common/segment' +import TemperatureReminder from './temperature-reminder' + +import { periodReminderObservable, savePeriodReminder } from '../../../local-storage' + +import labels from '../../../i18n/en/settings' + +export default class Reminders extends Component { + constructor(props) { + super(props) + + this.state = { + isPeriodReminderEnabled: periodReminderObservable.value.enabled + } + } + + periodReminderToggle = (isEnabled) => { + this.setState({ isPeriodReminderEnabled: isEnabled }) + savePeriodReminder({ enabled: isEnabled }) + } + + render() { + return ( + + + + + + + + + ) + } +} diff --git a/components/settings/reminders/temperature-reminder.js b/components/settings/reminders/temperature-reminder.js new file mode 100644 index 0000000..7a7d611 --- /dev/null +++ b/components/settings/reminders/temperature-reminder.js @@ -0,0 +1,65 @@ +import React, { Component } from 'react' +import DateTimePicker from 'react-native-modal-datetime-picker-nevo' + +import AppSwitch from '../../common/app-switch' + +import { saveTempReminder, tempReminderObservable } from '../../../local-storage' +import padWithZeros from '../../helpers/pad-time-with-zeros' + +import labels from '../../../i18n/en/settings' + +export default class TemperatureReminder extends Component { + constructor(props) { + super(props) + + const { time, enabled } = tempReminderObservable.value + this.state = { + isEnabled: enabled, + isTimePickerVisible: false, + time, + } + } + + temperatureReminderToggle = (value) => { + if (value) { + this.setState({ isTimePickerVisible: true }) + } else { + saveTempReminder({ enabled: false }) + this.setState({ isEnabled: false }) + } + } + + onPickDate = (date) => { + const time = padWithZeros(date) + + this.setState({ isEnabled: true, isTimePickerVisible: false, time }) + saveTempReminder({ time, enabled: true }) + } + + onPickDateCancel = () => { + this.setState({ isTimePickerVisible: false }) + } + + render() { + const { isEnabled, isTimePickerVisible, time } = this.state + + const tempReminderText = time && isEnabled ? + labels.tempReminder.timeSet(time) : labels.tempReminder.noTimeSet + + return ( + + + + + ) + } +}