Merge pull request #3318 from influxdata/fixes/line-graph-with-strings

Fixes line graph data with strings errors
pull/10616/head
Brandon Farmer 2018-04-26 15:57:00 -07:00 committed by GitHub
commit 25681ce553
1 changed files with 22 additions and 4 deletions

View File

@ -1,3 +1,4 @@
import _ from 'lodash'
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import Dygraph from 'shared/components/Dygraph'
@ -9,15 +10,31 @@ import {colorsStringSchema} from 'shared/schemas'
import {ErrorHandlingWith} from 'src/shared/decorators/errors'
import InvalidData from 'src/shared/components/InvalidData'
const validateTimeSeries = timeseries => {
return _.every(timeseries, r =>
_.every(
r,
(v, i) => (i === 0 && Date.parse(v)) || _.isNumber(v) || _.isNull(v)
)
)
}
@ErrorHandlingWith(InvalidData)
class LineGraph extends Component {
constructor(props) {
super(props)
this.isValidData = true
}
componentWillMount() {
const {data, isInDataExplorer} = this.props
this.parseTimeSeries(data, isInDataExplorer)
}
parseTimeSeries(data, isInDataExplorer) {
this._timeSeries = timeSeriesToDygraph(data, isInDataExplorer)
this.isValidData = validateTimeSeries(
_.get(this._timeSeries, 'timeSeries', [])
)
}
componentWillUpdate(nextProps) {
@ -26,14 +43,15 @@ class LineGraph extends Component {
data !== nextProps.data ||
activeQueryIndex !== nextProps.activeQueryIndex
) {
this._timeSeries = timeSeriesToDygraph(
nextProps.data,
nextProps.isInDataExplorer
)
this.parseTimeSeries(nextProps.data, nextProps.isInDataExplorer)
}
}
render() {
if (!this.isValidData) {
return <InvalidData />
}
const {
data,
axes,