graph legend: minor refactor

This commit is contained in:
Alexander Zobnin 2018-10-22 15:59:08 +03:00
parent 302158fb2b
commit 36354856f9
No known key found for this signature in database
GPG Key ID: E17E9ABACEFA59EB
2 changed files with 33 additions and 27 deletions

View File

@ -26,6 +26,10 @@ export class SeriesColorPicker extends React.Component<SeriesColorPickerProps> {
this.openColorPicker = this.openColorPicker.bind(this);
}
componentWillUnmount() {
this.destroyDrop();
}
openColorPicker() {
if (this.colorPickerDrop) {
this.destroyDrop();

View File

@ -61,10 +61,36 @@ export class LegendItem extends React.PureComponent<LegendItemProps, LegendItemS
this.forceUpdate();
};
getOptionSeriesCSSClasses() {
const { series, hidden } = this.props;
const classes = [];
if (series.yaxis === 2) {
classes.push('graph-legend-series--right-y');
}
if (hidden) {
classes.push('graph-legend-series-hidden');
}
return classes.join(' ');
}
renderLegendValues() {
const { series, asTable } = this.props;
const legendValueItems = [];
for (const valueName of LEGEND_STATS) {
if (this.props[valueName]) {
const valueFormatted = series.formatValue(series.stats[valueName]);
legendValueItems.push(
<LegendValue key={valueName} valueName={valueName} value={valueFormatted} asTable={asTable} />
);
}
}
return legendValueItems;
}
render() {
const { series, hidden, asTable } = this.props;
const seriesOptionClasses = getOptionSeriesCSSClasses(series, hidden);
const valueItems = this.props.values ? renderLegendValues(this.props, series, asTable) : [];
const { series, values, asTable } = this.props;
const seriesOptionClasses = this.getOptionSeriesCSSClasses();
const valueItems = values ? this.renderLegendValues() : [];
const seriesLabel = (
<LegendSeriesLabel
label={series.aliasEscaped}
@ -188,27 +214,3 @@ function LegendValue(props: LegendValueProps) {
}
return <div className={`graph-legend-value ${valueName}`}>{value}</div>;
}
function renderLegendValues(props: LegendItemProps, series, asTable = false) {
const legendValueItems = [];
for (const valueName of LEGEND_STATS) {
if (props[valueName]) {
const valueFormatted = series.formatValue(series.stats[valueName]);
legendValueItems.push(
<LegendValue key={valueName} valueName={valueName} value={valueFormatted} asTable={asTable} />
);
}
}
return legendValueItems;
}
function getOptionSeriesCSSClasses(series, hidden) {
const classes = [];
if (series.yaxis === 2) {
classes.push('graph-legend-series--right-y');
}
if (hidden) {
classes.push('graph-legend-series-hidden');
}
return classes.join(' ');
}