diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-09-06 23:04:13 -0700 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2017-09-06 23:11:58 -0700 |
commit | d8bd57901e33a7057e26e782e295099ffcc0da89 (patch) | |
tree | e12dfc8cad42b1576756d19d7fbfd82646a009bf /webapp/components/analytics/line_chart.jsx | |
parent | 7bc8e9a08dfde56387f946fdf5086252aa4d0491 (diff) | |
download | chat-d8bd57901e33a7057e26e782e295099ffcc0da89.tar.gz chat-d8bd57901e33a7057e26e782e295099ffcc0da89.tar.bz2 chat-d8bd57901e33a7057e26e782e295099ffcc0da89.zip |
Removing webapp
Diffstat (limited to 'webapp/components/analytics/line_chart.jsx')
-rw-r--r-- | webapp/components/analytics/line_chart.jsx | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/webapp/components/analytics/line_chart.jsx b/webapp/components/analytics/line_chart.jsx deleted file mode 100644 index 67a1162fc..000000000 --- a/webapp/components/analytics/line_chart.jsx +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import {FormattedMessage} from 'react-intl'; - -import * as Utils from 'utils/utils.jsx'; - -import PropTypes from 'prop-types'; - -import React from 'react'; -import ReactDOM from 'react-dom'; -import Chart from 'chart.js'; - -export default class LineChart extends React.Component { - constructor(props) { - super(props); - - this.initChart = this.initChart.bind(this); - this.chart = null; - } - - componentDidMount() { - this.initChart(); - } - - componentWillUpdate(nextProps) { - const willHaveData = nextProps.data && nextProps.data.labels.length > 0; - const hasChart = Boolean(this.chart); - - if (!willHaveData && hasChart) { - // Clean up the rendered chart before we render and destroy its context - this.chart.destroy(); - this.chart = null; - } - } - - componentDidUpdate(prevProps) { - if (Utils.areObjectsEqual(prevProps.data, this.props.data) && Utils.areObjectsEqual(prevProps.options, this.props.options)) { - return; - } - - const hasData = this.props.data && this.props.data.labels.length > 0; - const hasChart = Boolean(this.chart); - - if (hasData) { - // Update the rendered chart or initialize it as necessary - this.initChart(hasChart); - } - } - - componentWillUnmount() { - if (this.chart) { - this.chart.destroy(); - } - } - - initChart(update) { - if (!this.refs.canvas) { - return; - } - - var el = ReactDOM.findDOMNode(this.refs.canvas); - var ctx = el.getContext('2d'); - this.chart = new Chart(ctx, {type: 'line', data: this.props.data, options: this.props.options || {}}); // eslint-disable-line new-cap - - if (update) { - this.chart.update(); - } - } - - render() { - let content; - if (this.props.data == null) { - content = ( - <FormattedMessage - id='analytics.chart.loading' - defaultMessage='Loading...' - /> - ); - } else if (this.props.data.labels.length === 0) { - content = ( - <h5> - <FormattedMessage - id='analytics.chart.meaningful' - defaultMessage='Not enough data for a meaningful representation.' - /> - </h5> - ); - } else { - content = ( - <canvas - ref='canvas' - width={this.props.width} - height={this.props.height} - /> - ); - } - - return ( - <div className='col-sm-12'> - <div className='total-count by-day'> - <div className='title'> - {this.props.title} - </div> - <div className='content'> - {content} - </div> - </div> - </div> - ); - } -} - -LineChart.propTypes = { - title: PropTypes.node.isRequired, - width: PropTypes.string.isRequired, - height: PropTypes.string.isRequired, - data: PropTypes.object, - options: PropTypes.object -}; - |