diff --git a/components/app.js b/components/app.js
index 98484ab..ed3063d 100644
--- a/components/app.js
+++ b/components/app.js
@@ -16,7 +16,6 @@ import { closeDb } from '../db'
class App extends Component {
static propTypes = {
date: PropTypes.string,
- navigation: PropTypes.object.isRequired,
navigate: PropTypes.func,
setDate: PropTypes.func,
goBack: PropTypes.func,
diff --git a/components/header/hamburger-menu.js b/components/header/hamburger-menu.js
index 4e9705b..de97cfb 100644
--- a/components/header/hamburger-menu.js
+++ b/components/header/hamburger-menu.js
@@ -1,4 +1,4 @@
-import React, { Component } from 'react'
+import React, { useState } from 'react'
import {
Modal,
Platform,
@@ -25,58 +25,42 @@ const settingsMenuItems = [
{ name: menuItems.privacyPolicy, component: 'PrivacyPolicy' },
]
-export default class HamburgerMenu extends Component {
- constructor(props) {
- super(props)
-
- this.state = { shouldShowMenu: false }
- }
-
- toggleMenu = () => {
- this.setState({ shouldShowMenu: !this.state.shouldShowMenu })
- }
-
- render() {
- const { shouldShowMenu } = this.state
+const HamburgerMenu = ({ navigate }) => {
+ const [isOpen, setIsOpen] = useState(false)
+ const closeMenu = () => setIsOpen(false)
+ if (!isOpen)
return (
- <>
- {!shouldShowMenu && (
-
-
-
- )}
- {shouldShowMenu && (
-
-
-
-
- this.toggleMenu()} />
-
- {settingsMenuItems.map((item) => (
-
- ))}
-
-
- )}
- >
+ setIsOpen(true)} hitSlop={HIT_SLOP}>
+
+
)
- }
+
+ return (
+
+
+
+
+
+
+ {settingsMenuItems.map((item) => (
+
+ ))}
+
+
+ )
}
+export default HamburgerMenu
+
HamburgerMenu.propTypes = {
navigate: PropTypes.func,
}
diff --git a/components/settings/reminders/reminders.js b/components/settings/reminders/reminders.js
index b676ba2..0b65dc5 100644
--- a/components/settings/reminders/reminders.js
+++ b/components/settings/reminders/reminders.js
@@ -1,4 +1,4 @@
-import React, { Component } from 'react'
+import React, { useState } from 'react'
import AppPage from '../../common/app-page'
import AppSwitch from '../../common/app-switch'
@@ -12,34 +12,29 @@ import {
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 })
+const Reminders = () => {
+ const [isPeriodReminderEnabled, setIsPeriodReminderEnabled] = useState(
+ periodReminderObservable.value.enabled
+ )
+ const periodReminderToggle = (isEnabled) => {
+ setIsPeriodReminderEnabled(isEnabled)
savePeriodReminder({ enabled: isEnabled })
}
- render() {
- return (
-
-
-
-
-
-
-
-
- )
- }
+ return (
+
+
+
+
+
+
+
+
+ )
}
+
+export default Reminders
diff --git a/components/settings/reminders/temperature-reminder.js b/components/settings/reminders/temperature-reminder.js
index 47d3324..d5fb874 100644
--- a/components/settings/reminders/temperature-reminder.js
+++ b/components/settings/reminders/temperature-reminder.js
@@ -1,4 +1,4 @@
-import React, { Component } from 'react'
+import React, { useState } from 'react'
import { Platform } from 'react-native'
import DateTimePicker from 'react-native-modal-datetime-picker'
@@ -12,63 +12,55 @@ import padWithZeros from '../../helpers/pad-time-with-zeros'
import labels from '../../../i18n/en/settings'
-class TemperatureReminder extends Component {
- constructor(props) {
- super(props)
+const TemperatureReminder = () => {
+ const [isEnabled, setIsEnabled] = useState(
+ tempReminderObservable.value.enabled
+ )
+ const [isTimePickerVisible, setIsTimePickerVisible] = useState(false)
+ const [time, setTime] = useState(tempReminderObservable.value.time)
- const { time, enabled } = tempReminderObservable.value
- this.state = {
- isEnabled: enabled,
- isTimePickerVisible: false,
- time,
- }
- }
-
- temperatureReminderToggle = (value) => {
+ const temperatureReminderToggle = (value) => {
if (value) {
- this.setState({ isTimePickerVisible: true })
+ setIsTimePickerVisible(true)
} else {
saveTempReminder({ enabled: false })
- this.setState({ isEnabled: false })
+ setIsEnabled(false)
}
}
- onPickDate = (date) => {
+ const onPickDate = (date) => {
const time = padWithZeros(date)
-
- this.setState({ isEnabled: true, isTimePickerVisible: false, time })
+ setIsEnabled(true)
+ setIsTimePickerVisible(false)
+ setTime(time)
saveTempReminder({ time, enabled: true })
}
- onPickDateCancel = () => {
- this.setState({ isTimePickerVisible: false })
+ const onPickDateCancel = () => {
+ setIsTimePickerVisible(false)
}
- render() {
- const { isEnabled, isTimePickerVisible, time } = this.state
+ const tempReminderText =
+ time && isEnabled
+ ? labels.tempReminder.timeSet(time)
+ : labels.tempReminder.noTimeSet
- const tempReminderText =
- time && isEnabled
- ? labels.tempReminder.timeSet(time)
- : labels.tempReminder.noTimeSet
-
- return (
-
-
-
-
- )
- }
+ return (
+ <>
+
+
+ >
+ )
}
export default TemperatureReminder