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
+6 -29
View File
@@ -2,34 +2,20 @@ import React from 'react'
import { Text, View } from 'react-native'
import config from '../../config'
import styles from './styles'
import { scaleObservable } from '../../local-storage'
import { scaleObservable, unitObservable } from '../../local-storage'
export function makeYAxisLabels(columnHeight) {
const units = config.temperatureScale.units
const units = unitObservable.value
const scaleMax = scaleObservable.value.max
const scaleMin = scaleObservable.value.min
const style = styles.yAxisLabel
return getTickPositions(columnHeight).map((y, i) => {
// this eyeballing is sadly necessary because RN does not
// support percentage values for transforms, which we'd need
// to reliably place the label vertically centered to the grid
let tickLabelDistance
let tickUnit
if (scaleMax - scaleMin <= 3) {
tickLabelDistance = 2
tickUnit = 1
} else if (scaleMax - scaleMin <= 5) {
tickLabelDistance = 2
tickUnit = 2
} else {
tickLabelDistance = 5
tickUnit = 5
}
if (scaleMax - i * tickUnit * units === 37) console.log(y)
const tick = scaleMax - i * tickUnit * units
const tick = scaleMax - i * units
const tickLabel = tick * 10 % 10 ? tick.toString() : tick.toString() + '.0'
const showTick = tick * 10 % tickLabelDistance ? false : true
const showTick = (tick * 10 % 2) ? false : true
const tickBold = tick * 10 % 5 ? {} : {fontWeight: 'bold'}
return (
<Text
@@ -54,19 +40,11 @@ export function makeHorizontalGrid(columnHeight, symptomRowHeight) {
}
function getTickPositions(columnHeight) {
const units = config.temperatureScale.units
const units = unitObservable.value
const scaleMin = scaleObservable.value.min
const scaleMax = scaleObservable.value.max
const numberOfTicks = (scaleMax - scaleMin) * (1 / units) + 1
let tickDistance
if (numberOfTicks <= 31) {
tickDistance = 1 / (numberOfTicks - 1)
} else if (numberOfTicks <= 51) {
tickDistance = 2 / (numberOfTicks - 1)
} else {
tickDistance = 5 / (numberOfTicks - 1)
}
const tickDistance = 1 / (numberOfTicks - 1)
const tickPositions = []
for (let i = 0; i < numberOfTicks; i++) {
const position = getAbsoluteValue(tickDistance * i, columnHeight)
@@ -86,5 +64,4 @@ function getAbsoluteValue(relative, columnHeight) {
const verticalPadding = columnHeight * config.temperatureScale.verticalPadding
const scaleHeight = columnHeight - 2 * verticalPadding
return scaleHeight * relative + verticalPadding
}