From be2b7875b0ad33aae10c9a080560c169e8da7b62 Mon Sep 17 00:00:00 2001
From: Janell Fry <Janell_Fry@usgs.gov>
Date: Thu, 5 Mar 2020 11:51:22 -0800
Subject: [PATCH] IOW-307 Incremental fixes to DV legend pieces, moved common
 markers.js piece to d3-rendering dir.

---
 .../components/dailyValueHydrograph/legend.js | 32 ++++++++-----------
 .../scripts/components/hydrograph/legend.js   |  2 +-
 .../components/hydrograph/legend.spec.js      |  2 +-
 .../hydrograph => d3-rendering}/markers.js    |  0
 .../markers.spec.js                           |  0
 assets/src/scripts/index.spec.js              |  2 +-
 6 files changed, 17 insertions(+), 21 deletions(-)
 rename assets/src/scripts/{components/hydrograph => d3-rendering}/markers.js (100%)
 rename assets/src/scripts/{components/hydrograph => d3-rendering}/markers.spec.js (100%)

diff --git a/assets/src/scripts/components/dailyValueHydrograph/legend.js b/assets/src/scripts/components/dailyValueHydrograph/legend.js
index 3f6403ea7..9534f8a66 100644
--- a/assets/src/scripts/components/dailyValueHydrograph/legend.js
+++ b/assets/src/scripts/components/dailyValueHydrograph/legend.js
@@ -3,25 +3,17 @@ import { set } from 'd3-collection';
 import memoize from 'fast-memoize';
 import {createSelector, createStructuredSelector} from 'reselect';
 
+import {defineLineMarker, defineTextOnlyMarker} from '../../d3-rendering/markers';
 import {getLayout} from './selectors/layout';
-import { defineLineMarker, defineTextOnlyMarker } from '../hydrograph/markers';
-
-import { currentVariableLineSegmentsSelector } from '../hydrograph/drawing-data';
-//import { getCurrentTimeSeriesLineSegments } from './selectors/time-series-lines';
+import {getCurrentTimeSeriesLineSegments} from './selectors/time-series-lines';
 
 import config from '../../config';
 import { mediaQuery } from '../../utils';
 import {link} from '../../lib/d3-redux';
 
-const TS_LABEL = {
-    'current': 'Current: '
-};
-
 const tsLineMarkers = function(tsKey, lineClasses) {
     let result = [];
 
-    console.log('tsKey:'+tsKey);
-
     if (lineClasses.default) {
         result.push(defineLineMarker(null, `line-segment ts-${tsKey}`, 'Provisional'));
     }
@@ -51,7 +43,7 @@ const createLegendMarkers = function(displayItems) {
         ];
         if (currentMarkers.length) {
             legendMarkers.push([
-                defineTextOnlyMarker(TS_LABEL.current, null, 'ts-legend-current-text'),
+                defineTextOnlyMarker('', null, 'ts-legend-current-text'),
                 ...currentMarkers
             ]);
         }
@@ -139,15 +131,19 @@ export const drawSimpleLegend = function(div, {legendMarkerRows, layout}) {
 
 
 const uniqueClassesSelector = memoize(tsKey => createSelector(
-    currentVariableLineSegmentsSelector(tsKey),
-    //getCurrentTimeSeriesLineSegments(tsKey),
+    getCurrentTimeSeriesLineSegments,
     (tsLineSegments) => {
-        let classes = [].concat(...Object.values(tsLineSegments)).map((line) => line.classes);
-        return {
-            default: classes.some((cls) => !cls.approved && !cls.estimated),
-            approved: classes.some((cls) => cls.approved),
-            estimated: classes.some((cls) => cls.estimated),
+        let result = {
+            default: false,
+            approved: false,
+            estimated: false
         };
+        tsLineSegments.forEach((segment) => {
+            result.approved = result.approved || segment.approvals.includes('Approved');
+            result.estimated = result.estimated || segment.approvals.includes('Estimated');
+            result.default = result.default || segment.approvals.length === 0;
+        });
+        return result
     }
 ));
 
diff --git a/assets/src/scripts/components/hydrograph/legend.js b/assets/src/scripts/components/hydrograph/legend.js
index 0b14c6f08..9ec76410f 100644
--- a/assets/src/scripts/components/hydrograph/legend.js
+++ b/assets/src/scripts/components/hydrograph/legend.js
@@ -4,7 +4,7 @@ import memoize from 'fast-memoize';
 import {createSelector, createStructuredSelector} from 'reselect';
 
 import {CIRCLE_RADIUS, getMainLayout} from './layout';
-import { defineLineMarker, defineTextOnlyMarker, defineRectangleMarker } from './markers';
+import { defineLineMarker, defineTextOnlyMarker, defineRectangleMarker } from '../../d3-rendering/markers';
 import { currentVariableLineSegmentsSelector, HASH_ID, MASK_DESC } from './drawing-data';
 import config from '../../config';
 import { getCurrentVariableMedianMetadata } from '../../selectors/median-statistics-selector';
diff --git a/assets/src/scripts/components/hydrograph/legend.spec.js b/assets/src/scripts/components/hydrograph/legend.spec.js
index d424b688e..7e97f2373 100644
--- a/assets/src/scripts/components/hydrograph/legend.spec.js
+++ b/assets/src/scripts/components/hydrograph/legend.spec.js
@@ -1,6 +1,6 @@
 import { select, selectAll } from 'd3-selection';
 import { drawSimpleLegend, legendMarkerRowsSelector, drawTimeSeriesLegend } from './legend';
-import { lineMarker, rectangleMarker, textOnlyMarker } from './markers';
+import { lineMarker, rectangleMarker, textOnlyMarker } from '../../d3-rendering/markers';
 import {Actions, configureStore} from '../../store';
 
 describe('Legend module', () => {
diff --git a/assets/src/scripts/components/hydrograph/markers.js b/assets/src/scripts/d3-rendering/markers.js
similarity index 100%
rename from assets/src/scripts/components/hydrograph/markers.js
rename to assets/src/scripts/d3-rendering/markers.js
diff --git a/assets/src/scripts/components/hydrograph/markers.spec.js b/assets/src/scripts/d3-rendering/markers.spec.js
similarity index 100%
rename from assets/src/scripts/components/hydrograph/markers.spec.js
rename to assets/src/scripts/d3-rendering/markers.spec.js
diff --git a/assets/src/scripts/index.spec.js b/assets/src/scripts/index.spec.js
index 2702a505a..af583612f 100644
--- a/assets/src/scripts/index.spec.js
+++ b/assets/src/scripts/index.spec.js
@@ -39,7 +39,7 @@ import './components/hydrograph/graph-controls.spec';
 import './components/hydrograph/index.spec';
 import './components/hydrograph/layout.spec';
 import './components/hydrograph/legend.spec';
-import './components/hydrograph/markers.spec';
+import './d3-rendering/markers.spec';
 import './components/hydrograph/method-picker.spec';
 import './components/hydrograph/parameters.spec';
 import './components/hydrograph/scales.spec';
-- 
GitLab