diff --git a/assets/src/scripts/components/dailyValueHydrograph/legend.js b/assets/src/scripts/components/dailyValueHydrograph/legend.js index 3f6403ea76e7476635ee1baf966a07f42f7506e0..9534f8a668fcec2c71e1e37137b4ce812a89dab3 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 0b14c6f08cf6b12e7f109dd0efd57a717435e190..9ec76410f5ffd1d8b037ef733d7f27aeb150c890 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 d424b688e3e6512feff314a0ea64f130068e6628..7e97f2373a2ba640517d715f76aa2f7209e4e968 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 2702a505a6df78e2b199a5c08d57e3b392955b65..af583612fd03b62fb0d061cb22b7515d1de6b1ef 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';