From fb3b01a57db6661971cd6ff65b2ef56f56db51fa Mon Sep 17 00:00:00 2001 From: emelko Date: Thu, 2 Aug 2018 17:17:17 +0200 Subject: [PATCH 1/5] Rescues a forgotten console log --- components/cycle-day/symptoms/note.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/components/cycle-day/symptoms/note.js b/components/cycle-day/symptoms/note.js index d0e41ac..1796600 100644 --- a/components/cycle-day/symptoms/note.js +++ b/components/cycle-day/symptoms/note.js @@ -21,7 +21,6 @@ export default class Temp extends Component { } render() { - console.log(this.cycleDay.note) return ( @@ -50,4 +49,4 @@ export default class Temp extends Component { ) } -} \ No newline at end of file +} From f7efadb08abd0ed408eb747d3e8670701d25fb89 Mon Sep 17 00:00:00 2001 From: emelko Date: Thu, 2 Aug 2018 17:18:19 +0200 Subject: [PATCH 2/5] Renames cervixPosition labels into more universal positionOrIntensity --- components/cycle-day/cycle-day-overview.js | 2 +- components/cycle-day/labels/labels.js | 4 ++-- components/cycle-day/symptoms/cervix.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/components/cycle-day/cycle-day-overview.js b/components/cycle-day/cycle-day-overview.js index f9edf06..5218864 100644 --- a/components/cycle-day/cycle-day-overview.js +++ b/components/cycle-day/cycle-day-overview.js @@ -12,7 +12,7 @@ import { mucusNFP as computeSensiplanMucusLabels, cervixOpening as openingLabels, cervixFirmness as firmnessLabels, - cervixPosition as positionLabels + positionOrIntensity as positionLabels } from './labels/labels' import cycleDayModule from '../../lib/cycle' import { bleedingDaysSortedByDate } from '../../db' diff --git a/components/cycle-day/labels/labels.js b/components/cycle-day/labels/labels.js index 6e294ef..f5ef013 100644 --- a/components/cycle-day/labels/labels.js +++ b/components/cycle-day/labels/labels.js @@ -4,11 +4,11 @@ export const mucusTexture = ['nothing', 'creamy', 'egg white'] export const mucusNFP = ['t', 'Ø', 'f', 'S', '+S'] export const cervixOpening = ['closed', 'medium', 'open'] export const cervixFirmness = ['hard', 'soft'] -export const cervixPosition = ['low', 'medium', 'high'] +export const positionOrIntensity = ['low', 'medium', 'high'] export const fertilityStatus = { fertile: 'fertile', infertile: 'infertile', fertileUntilEvening: 'Fertile phase ends in the evening', unknown: 'We cannot show any cycle information because no menses has been entered' -} \ No newline at end of file +} diff --git a/components/cycle-day/symptoms/cervix.js b/components/cycle-day/symptoms/cervix.js index 59d9d8b..b7cabbb 100644 --- a/components/cycle-day/symptoms/cervix.js +++ b/components/cycle-day/symptoms/cervix.js @@ -10,7 +10,7 @@ import { saveSymptom } from '../../../db' import { cervixOpening as openingLabels, cervixFirmness as firmnessLabels, - cervixPosition as positionLabels + positionOrIntensity as positionLabels } from '../labels/labels' export default class Cervix extends Component { From 30839b55899b937f3d593cb1816c008485bfe45d Mon Sep 17 00:00:00 2001 From: emelko Date: Thu, 2 Aug 2018 17:19:21 +0200 Subject: [PATCH 3/5] Adds desire as a tracking category to our app; no exclude, no fancy nothing else, only pure desire tracking. --- components/cycle-day/cycle-day-overview.js | 17 ++++++- components/cycle-day/index.js | 4 +- components/cycle-day/symptoms/desire.js | 59 ++++++++++++++++++++++ db/index.js | 14 ++++- 4 files changed, 91 insertions(+), 3 deletions(-) create mode 100644 components/cycle-day/symptoms/desire.js diff --git a/components/cycle-day/cycle-day-overview.js b/components/cycle-day/cycle-day-overview.js index 5218864..f51392f 100644 --- a/components/cycle-day/cycle-day-overview.js +++ b/components/cycle-day/cycle-day-overview.js @@ -93,6 +93,15 @@ export default class DayView extends Component { + + Desire + + + + ) } @@ -137,9 +146,15 @@ function getLabel(symptomName, symptom) { }, note: note => { return note.value.slice(0, 12) + '...' + }, + desire: desire => { + if (typeof desire.value === 'number') { + const desireLabel = `${positionLabels[desire.value]}` + return desireLabel + } } } if (!symptom) return 'edit' return labels[symptomName](symptom) || 'edit' -} \ No newline at end of file +} diff --git a/components/cycle-day/index.js b/components/cycle-day/index.js index fa8aedf..7017583 100644 --- a/components/cycle-day/index.js +++ b/components/cycle-day/index.js @@ -12,6 +12,7 @@ import TemperatureEditView from './symptoms/temperature' import MucusEditView from './symptoms/mucus' import CervixEditView from './symptoms/cervix' import NoteEditView from './symptoms/note' +import DesireEditView from './symptoms/desire' import { formatDateForViewHeader } from './labels/format' import styles from '../../styles' import actionButtonModule from './action-buttons' @@ -61,7 +62,8 @@ export default class Day extends Component { temperatureEditView: , mucusEditView: , cervixEditView: , - noteEditView: + noteEditView: , + desireEditView: }[this.state.visibleComponent] } diff --git a/components/cycle-day/symptoms/desire.js b/components/cycle-day/symptoms/desire.js new file mode 100644 index 0000000..9fdd99b --- /dev/null +++ b/components/cycle-day/symptoms/desire.js @@ -0,0 +1,59 @@ +import React, { Component } from 'react' +import { + View, + Text +} from 'react-native' +import RadioForm from 'react-native-simple-radio-button' +import styles from '../../../styles' +import { saveSymptom } from '../../../db' +import { positionOrIntensity as labels } from '../labels/labels' + +export default class Desire extends Component { + constructor(props) { + super(props) + this.cycleDay = props.cycleDay + this.makeActionButtons = props.makeActionButtons + let desireValue = this.cycleDay.desire && this.cycleDay.desire.value + if (!(typeof desireValue === 'number')) { + desireValue = -1 + } + this.state = { currentValue: desireValue } + } + + render() { + const desireRadioProps = [ + { label: labels[0], value: 0 }, + { label: labels[1], value: 1 }, + { label: labels[2], value: 2 } + ] + return ( + + Desire + + { + this.setState({ currentValue: itemValue }) + }} + /> + + + {this.makeActionButtons( + { + symptom: 'desire', + cycleDay: this.cycleDay, + saveAction: () => { + saveSymptom('desire', this.cycleDay, { value: this.state.currentValue }) + }, + saveDisabled: this.state.currentValue === -1 + } + )} + + + ) + } +} diff --git a/db/index.js b/db/index.js index 80dc08e..8dadf1c 100644 --- a/db/index.js +++ b/db/index.js @@ -53,6 +53,13 @@ const NoteSchema = { } } +const DesireSchema = { + name: 'Desire', + properties: { + value: 'int' + } +} + const CycleDaySchema = { name: 'CycleDay', primaryKey: 'date', @@ -77,6 +84,10 @@ const CycleDaySchema = { note: { type: 'Note', optional: true + }, + desire: { + type: 'Desire', + optional: true } } } @@ -88,7 +99,8 @@ const realmConfig = { BleedingSchema, MucusSchema, CervixSchema, - NoteSchema + NoteSchema, + DesireSchema ], // we only want this in dev mode deleteRealmIfMigrationNeeded: true From e42d25a08735caa0c5bfef215635a25f60ff7c30 Mon Sep 17 00:00:00 2001 From: emelko Date: Fri, 3 Aug 2018 13:22:34 +0200 Subject: [PATCH 4/5] Revert "Renames cervixPosition labels into more universal positionOrIntensity" This reverts commit f7efadb08abd0ed408eb747d3e8670701d25fb89. --- components/cycle-day/cycle-day-overview.js | 2 +- components/cycle-day/labels/labels.js | 4 ++-- components/cycle-day/symptoms/cervix.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/components/cycle-day/cycle-day-overview.js b/components/cycle-day/cycle-day-overview.js index f51392f..3befcea 100644 --- a/components/cycle-day/cycle-day-overview.js +++ b/components/cycle-day/cycle-day-overview.js @@ -12,7 +12,7 @@ import { mucusNFP as computeSensiplanMucusLabels, cervixOpening as openingLabels, cervixFirmness as firmnessLabels, - positionOrIntensity as positionLabels + cervixPosition as positionLabels } from './labels/labels' import cycleDayModule from '../../lib/cycle' import { bleedingDaysSortedByDate } from '../../db' diff --git a/components/cycle-day/labels/labels.js b/components/cycle-day/labels/labels.js index f5ef013..6e294ef 100644 --- a/components/cycle-day/labels/labels.js +++ b/components/cycle-day/labels/labels.js @@ -4,11 +4,11 @@ export const mucusTexture = ['nothing', 'creamy', 'egg white'] export const mucusNFP = ['t', 'Ø', 'f', 'S', '+S'] export const cervixOpening = ['closed', 'medium', 'open'] export const cervixFirmness = ['hard', 'soft'] -export const positionOrIntensity = ['low', 'medium', 'high'] +export const cervixPosition = ['low', 'medium', 'high'] export const fertilityStatus = { fertile: 'fertile', infertile: 'infertile', fertileUntilEvening: 'Fertile phase ends in the evening', unknown: 'We cannot show any cycle information because no menses has been entered' -} +} \ No newline at end of file diff --git a/components/cycle-day/symptoms/cervix.js b/components/cycle-day/symptoms/cervix.js index b7cabbb..59d9d8b 100644 --- a/components/cycle-day/symptoms/cervix.js +++ b/components/cycle-day/symptoms/cervix.js @@ -10,7 +10,7 @@ import { saveSymptom } from '../../../db' import { cervixOpening as openingLabels, cervixFirmness as firmnessLabels, - positionOrIntensity as positionLabels + cervixPosition as positionLabels } from '../labels/labels' export default class Cervix extends Component { From 8e56fc0b232e9bdf38bfee94a211e5bd0fef2673 Mon Sep 17 00:00:00 2001 From: emelko Date: Fri, 3 Aug 2018 13:28:10 +0200 Subject: [PATCH 5/5] Adds new set of labels for chosing intensity of a tracking category --- components/cycle-day/cycle-day-overview.js | 5 +++-- components/cycle-day/labels/labels.js | 3 ++- components/cycle-day/symptoms/desire.js | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/components/cycle-day/cycle-day-overview.js b/components/cycle-day/cycle-day-overview.js index 3befcea..0b476f5 100644 --- a/components/cycle-day/cycle-day-overview.js +++ b/components/cycle-day/cycle-day-overview.js @@ -12,7 +12,8 @@ import { mucusNFP as computeSensiplanMucusLabels, cervixOpening as openingLabels, cervixFirmness as firmnessLabels, - cervixPosition as positionLabels + cervixPosition as positionLabels, + intensity as intensityLabels } from './labels/labels' import cycleDayModule from '../../lib/cycle' import { bleedingDaysSortedByDate } from '../../db' @@ -149,7 +150,7 @@ function getLabel(symptomName, symptom) { }, desire: desire => { if (typeof desire.value === 'number') { - const desireLabel = `${positionLabels[desire.value]}` + const desireLabel = `${intensityLabels[desire.value]}` return desireLabel } } diff --git a/components/cycle-day/labels/labels.js b/components/cycle-day/labels/labels.js index 6e294ef..68735ee 100644 --- a/components/cycle-day/labels/labels.js +++ b/components/cycle-day/labels/labels.js @@ -5,10 +5,11 @@ export const mucusNFP = ['t', 'Ø', 'f', 'S', '+S'] export const cervixOpening = ['closed', 'medium', 'open'] export const cervixFirmness = ['hard', 'soft'] export const cervixPosition = ['low', 'medium', 'high'] +export const intensity = ['low', 'medium', 'high'] export const fertilityStatus = { fertile: 'fertile', infertile: 'infertile', fertileUntilEvening: 'Fertile phase ends in the evening', unknown: 'We cannot show any cycle information because no menses has been entered' -} \ No newline at end of file +} diff --git a/components/cycle-day/symptoms/desire.js b/components/cycle-day/symptoms/desire.js index 9fdd99b..58a7ceb 100644 --- a/components/cycle-day/symptoms/desire.js +++ b/components/cycle-day/symptoms/desire.js @@ -6,7 +6,7 @@ import { import RadioForm from 'react-native-simple-radio-button' import styles from '../../../styles' import { saveSymptom } from '../../../db' -import { positionOrIntensity as labels } from '../labels/labels' +import { intensity as labels } from '../labels/labels' export default class Desire extends Component { constructor(props) {