* fix: eslint operator-linebreak issue * fix: eslint quotes issue * fix: react jsx indent and props issues * fix: eslint trailing spaces issues * fix: eslint line around directives issue * fix: eslint semi rule * fix: eslint newline per chain rule * fix: eslint space infix ops rule * fix: eslint space-in-parens issue * fix: eslint space before function paren issue * fix: eslint space before blocks issue * fix: eslint arrow body style issue * fix: eslint dot-location issue * fix: eslint quotes issue * fix: eslint quote props issue * fix: eslint operator assignment issue * fix: eslint new line after import issue * fix: indent issues * fix: operator assignment issue * fix: all autofixable eslint issues * fix: all react related fixable issues * fix: autofixable eslint issues * chore: remove all template literals * fix: remaining autofixable issues * fix: failing js test
56 lines
1.3 KiB
JavaScript
56 lines
1.3 KiB
JavaScript
import React from 'react';
|
|
import classNames from 'classnames';
|
|
import PropTypes from 'prop-types';
|
|
|
|
class CircleChartLegend extends React.Component {
|
|
constructor(props) {
|
|
super(props);
|
|
}
|
|
|
|
getList() {
|
|
const {data} = this.props;
|
|
|
|
return data.map(({value, label, sliceIndex}, index) => {
|
|
const swatchClass = `swatch-${sliceIndex}`;
|
|
return (
|
|
<li className="legend-item" key={index}>
|
|
<div
|
|
className={classNames('color-swatch', swatchClass)}
|
|
aria-hidden="true"
|
|
/>
|
|
<span className="label">{label}</span>
|
|
<span className="percentage">{this.getPercentage(value)}</span>
|
|
</li>
|
|
);
|
|
});
|
|
}
|
|
|
|
getPercentage(value) {
|
|
const num = value * 100;
|
|
|
|
return `${num}%`;
|
|
}
|
|
|
|
renderList() {
|
|
return (
|
|
<ul className="legend-list">
|
|
{this.getList()}
|
|
</ul>
|
|
);
|
|
}
|
|
|
|
render() {
|
|
return (
|
|
<div className="legend">
|
|
{this.renderList()}
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
|
|
CircleChartLegend.propTypes = {
|
|
data: PropTypes.array.isRequired
|
|
};
|
|
|
|
export default CircleChartLegend;
|