diff --git a/components/cycle-day/cycle-day-overview.js b/components/cycle-day/cycle-day-overview.js index 407693617d85737fed3b2c452cfb349c746f2f9b..98231651d3f553fe2bb4c8194c04c0b178cc3408 100644 --- a/components/cycle-day/cycle-day-overview.js +++ b/components/cycle-day/cycle-day-overview.js @@ -122,14 +122,14 @@ export default class CycleDayOverView extends Component { function getLabel(symptomName, symptom) { const l = { bleeding: bleeding => { - if (typeof bleeding.value === 'number') { + if (isNumber(bleeding.value)) { let bleedingLabel = `${bleedingLabels[bleeding.value]}` if (bleeding.exclude) bleedingLabel = "( " + bleedingLabel + " )" return bleedingLabel } }, temperature: temperature => { - if (typeof temperature.value === 'number') { + if (isNumber(temperature.value)) { let temperatureLabel = `${temperature.value} °C - ${temperature.time}` if (temperature.exclude) { temperatureLabel = "( " + temperatureLabel + " )" @@ -139,7 +139,7 @@ function getLabel(symptomName, symptom) { }, mucus: mucus => { const categories = ['feeling', 'texture', 'value'] - if (categories.every(c => typeof mucus[c] === 'number')) { + if (categories.every(c => isNumber(mucus[c]))) { let mucusLabel = [feelingLabels[mucus.feeling], textureLabels[mucus.texture]].join(', ') mucusLabel += `\n${labels.mucusNFP[mucus.value]}` if (mucus.exclude) mucusLabel = `(${mucusLabel})` @@ -148,12 +148,12 @@ function getLabel(symptomName, symptom) { }, cervix: cervix => { let cervixLabel = [] - if (cervix.opening > -1 && cervix.firmness > -1) { + if (isNumber(cervix.opening) && isNumber(cervix.firmness)) { cervixLabel.push( openingLabels[cervix.opening], firmnessLabels[cervix.firmness] ) - if (cervix.position > -1) { + if (isNumber(cervix.position)) { cervixLabel.push(positionLabels[cervix.position]) } cervixLabel = cervixLabel.join(', ') @@ -165,7 +165,7 @@ function getLabel(symptomName, symptom) { return note.value }, desire: desire => { - if (typeof desire.value === 'number') { + if (isNumber(desire.value)) { const desireLabel = `${intensityLabels[desire.value]}` return desireLabel } @@ -266,3 +266,7 @@ class FillerBoxes extends Component { return fillerBoxes } } + +function isNumber(val) { + return typeof val === 'number' +} \ No newline at end of file diff --git a/components/cycle-day/symptoms/bleeding.js b/components/cycle-day/symptoms/bleeding.js index 76985f455d8bdd1e7f442a905fe986b7864c2761..3c88ec5cc665eb1a4ea70e826d1511589b4374a8 100644 --- a/components/cycle-day/symptoms/bleeding.js +++ b/components/cycle-day/symptoms/bleeding.js @@ -16,12 +16,8 @@ export default class Bleeding extends Component { super(props) this.cycleDay = props.cycleDay this.makeActionButtons = props.makeActionButtons - let bleedingValue = this.cycleDay.bleeding && this.cycleDay.bleeding.value - if (!(typeof bleedingValue === 'number')) { - bleedingValue = -1 - } this.state = { - currentValue: bleedingValue, + currentValue: this.cycleDay.bleeding && this.cycleDay.bleeding.value, exclude: this.cycleDay.bleeding ? this.cycleDay.bleeding.exclude : false } } @@ -68,7 +64,7 @@ export default class Bleeding extends Component { exclude: this.state.exclude }) }} - saveDisabled={this.state.currentValue === -1} + saveDisabled={typeof this.state.currentValue != 'number'} navigate={this.props.navigate} /> </View> diff --git a/components/cycle-day/symptoms/cervix.js b/components/cycle-day/symptoms/cervix.js index 7d2ce6ccbb1582caa49e537f3a313adafcf698b0..ccb1cbd183ab25c919adf1cdf49e2a417469b6ab 100644 --- a/components/cycle-day/symptoms/cervix.js +++ b/components/cycle-day/symptoms/cervix.js @@ -17,17 +17,11 @@ export default class Cervix extends Component { this.cycleDay = props.cycleDay this.makeActionButtons = props.makeActionButtons this.state = { - exclude: this.cycleDay.cervix ? this.cycleDay.cervix.exclude : false - }; - - /* eslint-disable react/no-direct-mutation-state */ - ['opening', 'firmness', 'position'].forEach(label => { - this.state[label] = this.cycleDay.cervix && this.cycleDay.cervix[label] - if (typeof this.state[label] !== 'number') { - this.state[label] = -1 - } - }) - /* eslint-enable react/no-direct-mutation-state */ + exclude: this.cycleDay.cervix ? this.cycleDay.cervix.exclude : false, + opening: this.cycleDay.cervix ? this.cycleDay.cervix.opening : null, + firmness: this.cycleDay.cervix ? this.cycleDay.cervix.firmness : null, + position: this.cycleDay.cervix ? this.cycleDay.cervix.position : null + } } render() { @@ -102,7 +96,7 @@ export default class Cervix extends Component { exclude: this.state.exclude }) }} - saveDisabled={this.state.opening === -1 || this.state.firmness === -1} + saveDisabled={typeof this.state.opening != 'number' || typeof this.state.firmness != 'number'} navigate={this.props.navigate} /> </View> diff --git a/components/cycle-day/symptoms/desire.js b/components/cycle-day/symptoms/desire.js index d9be3b3fd9dbaa8e5e9a76dd1129f9cb487955d5..ea8800f074d1333d45836090963372c84b7c5812 100644 --- a/components/cycle-day/symptoms/desire.js +++ b/components/cycle-day/symptoms/desire.js @@ -15,10 +15,7 @@ export default class Desire extends Component { 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 - } + const desireValue = this.cycleDay.desire && this.cycleDay.desire.value this.state = { currentValue: desireValue } } @@ -48,7 +45,7 @@ export default class Desire extends Component { saveAction={() => { saveSymptom('desire', this.cycleDay, { value: this.state.currentValue }) }} - saveDisabled={this.state.currentValue === -1} + saveDisabled={typeof this.state.currentValue != 'number'} navigate={this.props.navigate} /> </View> diff --git a/components/cycle-day/symptoms/mucus.js b/components/cycle-day/symptoms/mucus.js index 6257c7c801d452cd6a60b16a705da659b4c96fe5..a517fcd1b0f27b84105cee06998476b4951c7d7b 100644 --- a/components/cycle-day/symptoms/mucus.js +++ b/components/cycle-day/symptoms/mucus.js @@ -19,17 +19,10 @@ export default class Mucus extends Component { this.cycleDay = props.cycleDay this.makeActionButtons = props.makeActionButtons this.state = { - exclude: this.cycleDay.mucus ? this.cycleDay.mucus.exclude : false - }; - - /* eslint-disable react/no-direct-mutation-state */ - ['feeling', 'texture'].forEach(label => { - this.state[label] = this.cycleDay.mucus && this.cycleDay.mucus[label] - if (typeof this.state[label] !== 'number') { - this.state[label] = -1 - } - }) - /* eslint-enable react/no-direct-mutation-state */ + exclude: this.cycleDay.mucus ? this.cycleDay.mucus.exclude : false, + feeling: this.cycleDay.mucus ? this.cycleDay.mucus.feeling : null, + texture: this.cycleDay.mucus ? this.cycleDay.mucus.texture : null + } } render() { @@ -93,7 +86,7 @@ export default class Mucus extends Component { exclude: this.state.exclude }) }} - saveDisabled={this.state.feeling === -1 || this.state.texture === -1} + saveDisabled={typeof this.state.feeling != 'number' || typeof this.state.texture != 'number'} navigate={this.props.navigate} /> </View>