every symptom has its own row

This commit is contained in:
tina
2018-09-07 19:32:45 +02:00
parent 4d5658119a
commit 1e81cd8298
7 changed files with 125 additions and 59 deletions
+30 -4
View File
@@ -28,7 +28,6 @@ export default class CycleChart extends Component {
onLayout = ({ nativeEvent }) => {
if (this.state.chartHeight) return
const height = nativeEvent.layout.height
this.setState({ chartHeight: height })
this.reCalculateChartInfo = () => {
@@ -61,11 +60,38 @@ export default class CycleChart extends Component {
jsDate.getDate()
).toString()
})
const chartSymptoms = [
'bleeding',
'temperature',
'mucus',
'cervix',
'sex',
'desire',
'pain',
'note'
].filter((symptomName) => {
return cycleDaysSortedByDate.some(cycleDay => cycleDay[symptomName])
})
const columns = xAxisDates.map(dateString => {
const cycleDay = getCycleDay(dateString)
const symptoms = ['temperature', 'mucus', 'bleeding'].reduce((acc, symptom) => {
acc[symptom] = cycleDay && cycleDay[symptom] && cycleDay[symptom].value
const symptoms = chartSymptoms.reduce((acc, symptom) => {
if (symptom === 'bleeding' ||
symptom === 'temperature' ||
symptom === 'mucus' ||
symptom === 'desire' ||
symptom === 'note'
) {
acc[symptom] = cycleDay && cycleDay[symptom] && cycleDay[symptom].value
} else if (symptom === 'cervix') {
acc[symptom] = cycleDay && cycleDay['cervix'] && (cycleDay['cervix'].opening + cycleDay['cervix'].firmness)
} else if (symptom === 'sex') {
// solo = 1 + partner = 2
acc[symptom] = cycleDay && cycleDay['sex'] && (cycleDay['sex'].solo + cycleDay['sex'].partner)
} else if (symptom === 'pain') {
// is any pain documented?
acc[symptom] = cycleDay && cycleDay['pain'] && Object.values(cycleDay['pain']).some(x => x === true)
}
acc[`${symptom}Exclude`] = cycleDay && cycleDay[symptom] && cycleDay[symptom].exclude
return acc
}, {})
@@ -75,7 +101,7 @@ export default class CycleChart extends Component {
return {
dateString,
y: temp ? normalizeToScale(temp, columnHeight) : null,
...symptoms,
symptoms,
...getFhmAndLtlInfo(dateString, temp)
}
})