diff --git a/.eslintrc b/.eslintrc
index 7fb97d8..29c077b 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -4,10 +4,7 @@
"mocha": true,
"es6": true
},
- "extends": [
- "eslint:recommended",
- "plugin:react/recommended"
- ],
+ "extends": ["eslint:recommended", "plugin:react/recommended"],
"parser": "babel-eslint",
"parserOptions": {
"sourceType": "module",
@@ -16,31 +13,18 @@
},
"ecmaVersion": 2018
},
- "plugins": [
- "react"
- ],
+ "plugins": ["react"],
"settings": {
"react": {
- "version": require('./package.json').dependencies.react,
- },
+ "version": require("./package.json").dependencies.react
+ }
},
"rules": {
- "indent": [
- "error",
- 2
- ],
- "no-console": [
- "error",
- { allow: ["warn", "error"] }
- ],
+ "indent": ["error", 2],
+ "no-console": ["error", { "allow": ["warn", "error"] }],
"space-before-function-paren": 0,
- "semi": [
- "warn",
- "never"
- ],
- "space-infix-ops": [
- "warn"
- ],
+ "semi": ["warn", "never"],
+ "space-infix-ops": ["warn"],
"no-var": "error",
"prefer-const": "error",
"no-trailing-spaces": "error",
@@ -53,6 +37,6 @@
"ignoreTemplateLiterals": true
}
],
- "no-multi-spaces": 2,
+ "no-multi-spaces": 2
}
}
diff --git a/.gitignore b/.gitignore
index 4663f1b..2266a24 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,9 @@
#
.DS_Store
+# VSCode
+.vscode/
+
# Xcode
#
build/
diff --git a/components/cycle-day/symptom-page-title.js b/components/cycle-day/symptom-page-title.js
index 3ef0967..ec47427 100644
--- a/components/cycle-day/symptom-page-title.js
+++ b/components/cycle-day/symptom-page-title.js
@@ -12,16 +12,17 @@ import {
nextDate,
prevDate,
isTomorrowInFuture,
- isYesterdayInFuture
+ isYesterdayInFuture,
} from '../helpers/cycle-day'
import { Colors, Containers, Spacing, Typography } from '../../styles'
+import { HIT_SLOP } from '../../config'
const SymptomPageTitle = ({
date,
reloadSymptomData,
setDate,
subtitle,
- title
+ title,
}) => {
const rightArrowColor = isTomorrowInFuture(date) ? Colors.grey : Colors.orange
const leftArrowColor = isYesterdayInFuture(date) ? Colors.grey : Colors.orange
@@ -33,15 +34,15 @@ const SymptomPageTitle = ({
return (
- navigate(false)}>
-
+ navigate(false)} hitSlop={HIT_SLOP}>
+
{title}
{subtitle && {subtitle}}
- navigate(true)}>
-
+ navigate(true)} hitSlop={HIT_SLOP}>
+
)
@@ -52,37 +53,34 @@ SymptomPageTitle.propTypes = {
reloadSymptomData: PropTypes.func.isRequired,
setDate: PropTypes.func.isRequired,
subtitle: PropTypes.string,
- title: PropTypes.string
+ title: PropTypes.string,
}
const styles = StyleSheet.create({
container: {
- height: (Spacing.base * 4),
+ height: Spacing.base * 4,
marginHorizontal: Spacing.base,
marginTop: Spacing.base,
- ...Containers.rowContainer
+ ...Containers.rowContainer,
},
textContainer: {
- alignItems: 'center'
+ alignItems: 'center',
},
title: {
- ...Typography.titleWithoutMargin
- }
+ ...Typography.titleWithoutMargin,
+ },
})
const mapStateToProps = (state) => {
- return({
+ return {
date: getDate(state),
- })
+ }
}
const mapDispatchToProps = (dispatch) => {
- return({
+ return {
setDate: (date) => dispatch(setDate(date)),
- })
+ }
}
-export default connect(
- mapStateToProps,
- mapDispatchToProps,
-)(SymptomPageTitle)
\ No newline at end of file
+export default connect(mapStateToProps, mapDispatchToProps)(SymptomPageTitle)
diff --git a/components/header/hamburger-menu.js b/components/header/hamburger-menu.js
index 8b59b27..16ace0b 100644
--- a/components/header/hamburger-menu.js
+++ b/components/header/hamburger-menu.js
@@ -6,6 +6,7 @@ import MenuItem from './menu-item'
import { Colors, Sizes } from '../../styles'
import settingsLabels from '../../i18n/en/settings'
+import { HIT_SLOP } from '../../config'
const { menuItems } = settingsLabels
@@ -16,7 +17,6 @@ const settingsMenuItems = [
]
export default class HamburgerMenu extends Component {
-
constructor(props) {
super(props)
@@ -24,20 +24,20 @@ export default class HamburgerMenu extends Component {
}
toggleMenu = () => {
- this.setState({ shouldShowMenu: !this.state.shouldShowMenu})
+ this.setState({ shouldShowMenu: !this.state.shouldShowMenu })
}
render() {
const { shouldShowMenu } = this.state
- return(
+ return (
- {!shouldShowMenu &&
-
-
+ {!shouldShowMenu && (
+
+
- }
- {shouldShowMenu &&
+ )}
+ {shouldShowMenu && (
-
+ >
-
+
- {settingsMenuItems.map(item =>
+ {settingsMenuItems.map((item) => (
- )}
+ ))}
- }
+ )}
)
}
-
}
const styles = StyleSheet.create({
@@ -80,7 +78,7 @@ const styles = StyleSheet.create({
},
iconContainer: {
alignSelf: 'flex-end',
- marginBottom: Sizes.base
+ marginBottom: Sizes.base,
},
menu: {
alignSelf: 'flex-end',
@@ -88,6 +86,6 @@ const styles = StyleSheet.create({
height: '100%',
padding: Sizes.base,
position: 'absolute',
- width: '60%'
- }
+ width: '60%',
+ },
})
diff --git a/config.js b/config.js
index 343d760..ee9761d 100644
--- a/config.js
+++ b/config.js
@@ -11,7 +11,7 @@ export const SYMPTOMS = [
'desire',
'pain',
'mood',
- 'note'
+ 'note',
]
export const CHART_COLUMN_WIDTH = 32
@@ -30,3 +30,5 @@ export const TEMP_SCALE_UNITS = 0.1
export const TEMP_MAX = 40
export const TEMP_MIN = 34
export const TEMP_SLIDER_STEP = 0.5
+
+export const HIT_SLOP = { top: 20, bottom: 20, left: 20, right: 20 }