UNPKG

mozaik

Version:

Mozaik dashboard composition tool

69 lines (60 loc) 1.98 kB
import React, { Component, PropTypes } from 'react'; import PieLegends from './PieLegends.jsx'; import PieCount from './PieCount.jsx'; import PieChart from './PieChart.jsx'; class Pie extends Component { render() { const { data, spacing, innerRadius, transitionDuration, count, countUnit, countLabel } = this.props; let overlay = null; if (count !== undefined) { overlay = ( <div className="pie_overlay"> <PieCount count={count} unit={countUnit} label={countLabel} /> </div> ); } return ( <div className="pie"> <div className="pie_chart" ref="wrapper"> <PieChart data={data} spacing={spacing} innerRadius={innerRadius} transitionDuration={transitionDuration} /> {overlay} </div> <PieLegends legends={data}/> </div> ); } } Pie.propTypes = { count: PropTypes.number, countUnit: PropTypes.string, countLabel: PropTypes.string, spacing: PropTypes.object.isRequired, innerRadius: PropTypes.number.isRequired, transitionDuration: PropTypes.number.isRequired, data: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.isRequired, count: PropTypes.number, color: PropTypes.string })).isRequired }; Pie.defaultProps = { innerRadius: 0, transitionDuration: 600, data: [], spacing: { top: 30, right: 30, bottom: 30, left: 30 } }; export default Pie;