// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import {FormattedMessage} from 'mm-intl'; export default class DoughnutChart 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.refs.canvas); var ctx = el.getContext('2d'); this.chart = new Chart(ctx).Doughnut(props.data, props.options || {}); //eslint-disable-line new-cap } render() { let content; if (this.props.data == null) { content = ( ); } else { content = ( ); } return (
{this.props.title}
{content}
); } } DoughnutChart.propTypes = { title: React.PropTypes.node, width: React.PropTypes.string, height: React.PropTypes.string, data: React.PropTypes.array, options: React.PropTypes.object };