/* eslint-disable jsx-a11y/mouse-events-have-key-events */ import React, { PureComponent } from "react"; import { connect } from "react-redux"; export default @connect(state => ({ colorAccessor: state.colors.colorAccessor, dilatedValue: state.pointDilation.categoryField, labels: state.centroidLabels.labels })) class CentroidLabels extends PureComponent { render() { const { labels, inverseTransform, dilatedValue, dispatch, colorAccessor } = this.props; const labelSVGS = []; let fontSize = "15px"; let fontWeight = null; labels.forEach((value, key) => { fontSize = "15px"; fontWeight = null; if (key === dilatedValue) { fontSize = "18px"; fontWeight = "800"; } labelSVGS.push( dispatch({ type: "category value mouse hover start", metadataField: colorAccessor, categoryField: e.target.getAttribute("data-label") }) } onMouseOut={e => dispatch({ type: "category value mouse hover end", metadataField: colorAccessor, categoryField: e.target.getAttribute("data-label") }) } pointerEvents="visiblePainted" > {key.length > 20 ? `${key.substr(0, 20)}...` : key} ); }); return <>{labelSVGS}; } }