Add first version of y axis
This commit is contained in:
+30
-3
@@ -1,5 +1,5 @@
|
|||||||
import React, { Component } from 'react'
|
import React, { Component } from 'react'
|
||||||
import { FlatList } from 'react-native'
|
import { View, FlatList } from 'react-native'
|
||||||
import range from 'date-range'
|
import range from 'date-range'
|
||||||
import Svg,{
|
import Svg,{
|
||||||
G,
|
G,
|
||||||
@@ -112,15 +112,41 @@ export default class CycleChart extends Component {
|
|||||||
</G>)
|
</G>)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
placeTicksForYAxis() {
|
||||||
|
const scaleMin = config.temperatureScale.low
|
||||||
|
const scaleMax = config.temperatureScale.high
|
||||||
|
const numberOfTicks = (scaleMax - scaleMin) * 2
|
||||||
|
const tickDistance = config.chartHeight / numberOfTicks
|
||||||
|
const ticks = []
|
||||||
|
const labelStyle = styles.column.label.date
|
||||||
|
for (let i = 0; i < numberOfTicks; i++) {
|
||||||
|
const y = tickDistance * i
|
||||||
|
ticks.push(
|
||||||
|
<G key={i}>
|
||||||
|
<Line
|
||||||
|
x1={18} y1={y} x2={22} y2={y}
|
||||||
|
{...styles.yAxis}
|
||||||
|
/>
|
||||||
|
<Text {...labelStyle} y={y}>{scaleMax - i * 0.5}</Text>
|
||||||
|
</G>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return ticks
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
|
<View style={{flex: 1, flexDirection: 'row'}}>
|
||||||
|
<Svg {...styles.yAxis}>
|
||||||
|
{this.placeTicksForYAxis()}
|
||||||
|
</Svg>
|
||||||
<FlatList
|
<FlatList
|
||||||
horizontal={true}
|
horizontal={true}
|
||||||
inverted={true}
|
inverted={true}
|
||||||
data={this.state.columns}
|
data={this.state.columns}
|
||||||
renderItem={({ item, index }) => {
|
renderItem={({ item, index }) => {
|
||||||
return (
|
return (
|
||||||
<Svg width={config.columnWidth} height={config.chartLength}>
|
<Svg width={config.columnWidth} height={config.chartHeight}>
|
||||||
{this.makeDayColumn(item, index)}
|
{this.makeDayColumn(item, index)}
|
||||||
</Svg>
|
</Svg>
|
||||||
)
|
)
|
||||||
@@ -128,6 +154,7 @@ export default class CycleChart extends Component {
|
|||||||
keyExtractor={item => item.dateString}
|
keyExtractor={item => item.dateString}
|
||||||
>
|
>
|
||||||
</FlatList>
|
</FlatList>
|
||||||
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -163,6 +190,6 @@ function getPreviousDays(n) {
|
|||||||
function normalizeToScale(temp) {
|
function normalizeToScale(temp) {
|
||||||
const temperatureScale = config.temperatureScale
|
const temperatureScale = config.temperatureScale
|
||||||
const valueRelativeToScale = (temperatureScale.high - temp) / (temperatureScale.high - temperatureScale.low)
|
const valueRelativeToScale = (temperatureScale.high - temp) / (temperatureScale.high - temperatureScale.low)
|
||||||
const scaleHeight = config.chartLength
|
const scaleHeight = config.chartHeight
|
||||||
return scaleHeight * valueRelativeToScale
|
return scaleHeight * valueRelativeToScale
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
const config = {
|
const config = {
|
||||||
chartLength: 350,
|
chartHeight: 350,
|
||||||
columnWidth: 30,
|
columnWidth: 30,
|
||||||
temperatureScale: {
|
temperatureScale: {
|
||||||
low: 33,
|
low: 33,
|
||||||
@@ -10,7 +10,7 @@ const config = {
|
|||||||
|
|
||||||
const margin = 3
|
const margin = 3
|
||||||
config.columnMiddle = config.columnWidth / 2,
|
config.columnMiddle = config.columnWidth / 2,
|
||||||
config.dateRowY = config.chartLength - 15 - margin
|
config.dateRowY = config.chartHeight - 15 - margin
|
||||||
config.cycleDayNumberRowY = config.chartLength - margin
|
config.cycleDayNumberRowY = config.chartHeight - margin
|
||||||
|
|
||||||
export default config
|
export default config
|
||||||
@@ -38,7 +38,7 @@ const styles = {
|
|||||||
x: 0,
|
x: 0,
|
||||||
y: 0,
|
y: 0,
|
||||||
width: config.columnWidth,
|
width: config.columnWidth,
|
||||||
height: config.chartLength
|
height: config.chartHeight
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
bleedingIcon: {
|
bleedingIcon: {
|
||||||
@@ -46,6 +46,11 @@ const styles = {
|
|||||||
scale: 0.6,
|
scale: 0.6,
|
||||||
x: 7,
|
x: 7,
|
||||||
y: 3
|
y: 3
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
height: config.chartHeight,
|
||||||
|
width: config.columnWidth,
|
||||||
|
stroke: 'grey'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user