diff --git a/frontend/src/visualizations/PieChart.jsx b/frontend/src/visualizations/PieChart.jsx index 8e135208c493db0835972d906b46ccf3dfd65499..2fd3e8dcc70123c6c584a583e1ecc39f492c3f4f 100644 --- a/frontend/src/visualizations/PieChart.jsx +++ b/frontend/src/visualizations/PieChart.jsx @@ -37,6 +37,16 @@ export default class PieChart extends Component { if (cols.length < 2) { throw new MinColumnsError(2, cols.length); } } + componentDidUpdate() { + let groupElement = ReactDOM.findDOMNode(this.refs.group); + let detailElement = ReactDOM.findDOMNode(this.refs.detail); + if (groupElement.getBoundingClientRect().width < 100) { + detailElement.classList.add("hide"); + } else { + detailElement.classList.remove("hide"); + } + } + render() { const { series, hovered, onHoverChange, className, gridSize } = this.props; const { data } = series[0]; @@ -123,13 +133,13 @@ export default class PieChart extends Component { hovered={hovered} onHoverChange={(d) => onHoverChange && onHoverChange(d && { ...d, ...hoverForIndex(d.index) })} > <div className={styles.ChartAndDetail}> - <div className={styles.Detail}> + <div ref="detail" className={styles.Detail}> <div className={styles.Value}>{value}</div> <div className={styles.Title}>{title}</div> </div> <div className={styles.Chart}> <svg className={styles.Donut+ " m1"} viewBox="0 0 100 100"> - <g transform={`translate(50,50)`}> + <g ref="group" transform={`translate(50,50)`}> {pie(slices).map((slice, index) => <path key={index} diff --git a/frontend/src/visualizations/components/ChartWithLegend.css b/frontend/src/visualizations/components/ChartWithLegend.css index cab9676acb04e453be1b56f9c91e8d91c64486ab..e8a4fe9312bd98d5d5a1b1d79c9c6b9bade75ff6 100644 --- a/frontend/src/visualizations/components/ChartWithLegend.css +++ b/frontend/src/visualizations/components/ChartWithLegend.css @@ -47,7 +47,7 @@ justify-content: space-around; } :local .ChartWithLegend.horizontal .Legend { - flex-grow: 1; + flex-grow: 0; flex-shrink: 1; overflow: hidden; }