Files
edx-platform/lms/static/js/learner_analytics_dashboard/CircleChartLegend.jsx
Syed Ali Abbas Zaidi d7053a6783 fix: eslint autofixable issues (#32181)
* 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
2023-05-18 11:03:59 +05:00

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;