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 }