Skip to content

Commit 4bd7d79

Browse files
jerairrestgor181
authored andcommitted
Update chart dynamically (#65)
fixes #35
1 parent 5f57fbe commit 4bd7d79

File tree

5 files changed

+82
-37
lines changed

5 files changed

+82
-37
lines changed

dist/react-chartjs-2.js

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@ var ChartComponent = _react2.default.createClass({
9999
this.chart_instance.destroy();
100100
},
101101
updateChart: function updateChart() {
102-
var _props = this.props;
103-
var data = _props.data;
104-
var options = _props.options;
102+
var _props = this.props,
103+
data = _props.data,
104+
options = _props.options;
105105

106106

107107
if (!this.chart_instance) return;
@@ -110,16 +110,31 @@ var ChartComponent = _react2.default.createClass({
110110
this.chart_instance.options = _chart2.default.helpers.configMerge(this.chart_instance.options, options);
111111
}
112112

113+
var currentData = this.chart_instance.config.data.datasets;
114+
var nextData = data.datasets;
115+
116+
nextData.forEach(function (dataset, sid) {
117+
if (currentData[sid] && currentData[sid].data) {
118+
currentData[sid].data.splice(nextData[sid].data.length);
119+
dataset.data.forEach(function (point, pid) {
120+
currentData[sid].data[pid] = nextData[sid].data[pid];
121+
});
122+
} else {
123+
currentData[sid] = nextData[sid];
124+
}
125+
});
126+
delete data.datasets;
127+
113128
this.chart_instance.config.data = _extends({}, this.chart_instance.config.data, data);
114129

115130
this.chart_instance.update();
116131
},
117132
renderChart: function renderChart() {
118-
var _props2 = this.props;
119-
var data = _props2.data;
120-
var options = _props2.options;
121-
var legend = _props2.legend;
122-
var type = _props2.type;
133+
var _props2 = this.props,
134+
data = _props2.data,
135+
options = _props2.options,
136+
legend = _props2.legend,
137+
type = _props2.type;
123138

124139
var node = _reactDom2.default.findDOMNode(this);
125140

@@ -132,11 +147,11 @@ var ChartComponent = _react2.default.createClass({
132147
handleOnClick: function handleOnClick(event) {
133148
var instance = this.chart_instance;
134149

135-
var _props3 = this.props;
136-
var getDatasetAtEvent = _props3.getDatasetAtEvent;
137-
var getElementAtEvent = _props3.getElementAtEvent;
138-
var getElementsAtEvent = _props3.getElementsAtEvent;
139-
var onElementsClick = _props3.onElementsClick;
150+
var _props3 = this.props,
151+
getDatasetAtEvent = _props3.getDatasetAtEvent,
152+
getElementAtEvent = _props3.getElementAtEvent,
153+
getElementsAtEvent = _props3.getElementsAtEvent,
154+
onElementsClick = _props3.onElementsClick;
140155

141156

142157
getDatasetAtEvent && getDatasetAtEvent(instance.getDatasetAtEvent(event), event);
@@ -145,10 +160,10 @@ var ChartComponent = _react2.default.createClass({
145160
onElementsClick && onElementsClick(instance.getElementsAtEvent(event), event); // Backward compatibility
146161
},
147162
render: function render() {
148-
var _props4 = this.props;
149-
var height = _props4.height;
150-
var width = _props4.width;
151-
var onElementsClick = _props4.onElementsClick;
163+
var _props4 = this.props,
164+
height = _props4.height,
165+
width = _props4.width,
166+
onElementsClick = _props4.onElementsClick;
152167

153168

154169
return _react2.default.createElement('canvas', {
@@ -380,7 +395,7 @@ Object.defineProperty(exports, "__esModule", {
380395
value: true
381396
});
382397

383-
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
398+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
384399

385400
var hasOwnProperty = Object.prototype.hasOwnProperty;
386401

dist/react-chartjs-2.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)