From 58d1d16c23572d37c20d9bdd4d26f30e0ff8432c Mon Sep 17 00:00:00 2001 From: Dylan Munyard Date: Fri, 5 Jan 2018 15:17:20 +1000 Subject: [PATCH] Revert ES6 change that uses classes, and replace createElement with create-react-class fallback. --- lib/core.js | 240 +++++++++++++++++++++++++-------------------------- package.json | 3 + 2 files changed, 119 insertions(+), 124 deletions(-) diff --git a/lib/core.js b/lib/core.js index c0ec668..fa9b7c2 100644 --- a/lib/core.js +++ b/lib/core.js @@ -1,87 +1,17 @@ var React = require('react'); +var createReactClass = require('create-react-class'); var ReactDOM = require('react-dom'); module.exports = { createClass: function(chartType, methodNames, dataKey) { var excludedProps = ['data', 'options', 'redraw']; - - class ChartComponent extends React.Component { - constructor(props) { - super(props); - this.displayName = chartType + 'Chart'; - this.chart = {}; - this.canvas = null; - } - - componentDidMount() { - this.initializeChart(); - - this.canvas = ReactDOM.findDOMNode(this); - - var extras = ['clear', 'stop', 'resize', 'toBase64Image', 'generateLegend', 'update', 'addData', 'removeData'], - i; - for (i=0; i nextProps.data.labels.length) { - chart.removeData(); - } - nextProps.data.datasets.forEach(function(set, setIndex) { - set.data.forEach(function(val, pointIndex) { - if (typeof(chart.datasets[setIndex][dataKey][pointIndex]) == "undefined") { - addData(nextProps, chart, setIndex, pointIndex); - } else { - chart.datasets[setIndex][dataKey][pointIndex].value = val; + } else if (name === "Radar") { + chart.removeData(); + nextProps.data.datasets.forEach(function(set, setIndex) { + set.data.forEach(function(val, pointIndex) { + if (typeof(chart.datasets[setIndex][dataKey][pointIndex]) == "undefined") { + addData(nextProps, chart, setIndex, pointIndex); + } else { + chart.datasets[setIndex][dataKey][pointIndex].value = val; + } + }); + }); + } else { + while (chart.scale.xLabels.length > nextProps.data.labels.length) { + chart.removeData(); } - }); - }); - } + nextProps.data.datasets.forEach(function(set, setIndex) { + set.data.forEach(function(val, pointIndex) { + if (typeof(chart.datasets[setIndex][dataKey][pointIndex]) == "undefined") { + addData(nextProps, chart, setIndex, pointIndex); + } else { + chart.datasets[setIndex][dataKey][pointIndex].value = val; + } + }); + }); + } }; var addData = function(nextProps, chart, setIndex, pointIndex) { - var values = []; - nextProps.data.datasets.forEach(function(set) { - values.push(set.data[pointIndex]); - }); - chart.addData(values, nextProps.data.labels[setIndex]); + var values = []; + nextProps.data.datasets.forEach(function(set) { + values.push(set.data[pointIndex]); + }); + chart.addData(values, nextProps.data.labels[setIndex]); }; diff --git a/package.json b/package.json index e01e03a..5aa018d 100644 --- a/package.json +++ b/package.json @@ -34,5 +34,8 @@ "devDependencies": { "uglify-js": "^2.4.16", "webpack": "^1.4.14" + }, + "dependencies": { + "create-react-class": "^15.6.2" } }