From e391954ffcf4e82a2c2b151bb3f97dcb39ee347a Mon Sep 17 00:00:00 2001
From: Tom Robinson <tlrobinson@gmail.com>
Date: Mon, 21 Mar 2016 17:58:34 -0700
Subject: [PATCH] Hide donut detail if very small

---
 frontend/src/visualizations/PieChart.jsx           | 14 ++++++++++++--
 .../visualizations/components/ChartWithLegend.css  |  2 +-
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/frontend/src/visualizations/PieChart.jsx b/frontend/src/visualizations/PieChart.jsx
index 8e135208c49..2fd3e8dcc70 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 cab9676acb0..e8a4fe9312b 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;
 }
-- 
GitLab