From 473221dbada7ad7739d6a969d9d3d5c9c276941b Mon Sep 17 00:00:00 2001
From: =Corey Hulen <corey@hulen.com>
Date: Fri, 23 Oct 2015 16:56:26 -0700
Subject: PLT-25 adding analytics panel

---
 web/react/components/admin_console/line_chart.jsx | 50 +++++++++++++++++++++++
 1 file changed, 50 insertions(+)
 create mode 100644 web/react/components/admin_console/line_chart.jsx

(limited to 'web/react/components/admin_console/line_chart.jsx')

diff --git a/web/react/components/admin_console/line_chart.jsx b/web/react/components/admin_console/line_chart.jsx
new file mode 100644
index 000000000..7e2f95c84
--- /dev/null
+++ b/web/react/components/admin_console/line_chart.jsx
@@ -0,0 +1,50 @@
+// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+export default class LineChart extends React.Component {
+    constructor(props) {
+        super(props);
+
+        this.initChart = this.initChart.bind(this);
+        this.chart = null;
+    }
+
+    componentDidMount() {
+        this.initChart(this.props);
+    }
+
+    componentWillReceiveProps(nextProps) {
+        if (this.chart) {
+            this.chart.destroy();
+            this.initChart(nextProps);
+        }
+    }
+
+    componentWillUnmount() {
+        if (this.chart) {
+            this.chart.destroy();
+        }
+    }
+
+    initChart(props) {
+        var el = ReactDOM.findDOMNode(this);
+        var ctx = el.getContext('2d');
+        this.chart = new Chart(ctx).Line(props.data, props.options || {}); //eslint-disable-line new-cap
+    }
+
+    render() {
+        return (
+            <canvas
+                width={this.props.width}
+                height={this.props.height}
+            />
+        );
+    }
+}
+
+LineChart.propTypes = {
+    width: React.PropTypes.string,
+    height: React.PropTypes.string,
+    data: React.PropTypes.object,
+    options: React.PropTypes.object
+};
-- 
cgit v1.2.3-1-g7c22

