Skip to content
Snippets Groups Projects
temperature-column.js 1.66 KiB
Newer Older
import React from 'react'
import PropTypes from 'prop-types'
Maria Zadnepryanets's avatar
Maria Zadnepryanets committed
import { StyleSheet } from 'react-native'
import { Surface , Path } from 'react-native/Libraries/ART/ReactNativeART'

import ChartLine from './chart-line'
import DotAndLine from './dot-and-line'

Maria Zadnepryanets's avatar
Maria Zadnepryanets committed
import { CHART_COLUMN_WIDTH, CHART_STROKE_WIDTH } from '../../config'

const TemperatureColumn = ({
  horizontalLinePosition,
  isVerticalLine,
  data,
  columnHeight
}) => {
Maria Zadnepryanets's avatar
Maria Zadnepryanets committed
  const x = CHART_STROKE_WIDTH / 2
Maria Zadnepryanets's avatar
Maria Zadnepryanets committed
    <Surface
      width={CHART_COLUMN_WIDTH}
      height={columnHeight}
      style={styles.container}
    >
Maria Zadnepryanets's avatar
Maria Zadnepryanets committed
      <ChartLine path={new Path().lineTo(0, columnHeight)}/>

      {horizontalLinePosition && <ChartLine
        path={new Path()
          .moveTo(0, horizontalLinePosition)
Maria Zadnepryanets's avatar
Maria Zadnepryanets committed
          .lineTo(CHART_COLUMN_WIDTH, horizontalLinePosition)
        }
        isNfpLine={true}
        key='ltl'
      />}

      {isVerticalLine && <ChartLine
        path={new Path().moveTo(x, x).lineTo(x, columnHeight)}
        isNfpLine={true}
        key='fhm'
      />}

      {data && typeof(data.y) !== 'undefined' && <DotAndLine
        y={data.y}
        exclude={data.temperatureExclude}
        rightY={data.rightY}
        rightTemperatureExclude={data.rightTemperatureExclude}
        leftY={data.leftY}
        leftTemperatureExclude={data.leftTemperatureExclude}
        key='dotandline'
      />}
  )
}

TemperatureColumn.propTypes = {
  horizontalLinePosition: PropTypes.number,
  isVerticalLine: PropTypes.bool,
  data: PropTypes.object,
  columnHeight: PropTypes.number,
}

Maria Zadnepryanets's avatar
Maria Zadnepryanets committed
const styles = StyleSheet.create({
  container: {
    backgroundColor: 'white'
  }
})

export default TemperatureColumn