diff --git a/src/components/graph/MMEGraph.js b/src/components/graph/MMEGraph.js index 9dc215711..50223d901 100644 --- a/src/components/graph/MMEGraph.js +++ b/src/components/graph/MMEGraph.js @@ -72,7 +72,7 @@ export default class MMEGraph extends Component { } if (!minDate) { minDate = new Date(); - minDate.setDate(maxDate.getDate() - total * 60); + minDate.setDate(maxDate.getDate() - total * 30); } let index = 0; let increment = Math.ceil((maxDate.getTime() - minDate.getTime()) / total); @@ -228,7 +228,7 @@ export default class MMEGraph extends Component {
!isEmptyArray(o.data) && !!o.stats)[0] ); + let maxDate = new Date(); + let minDate = new Date().setDate(maxDate.getDate() - 365); let arrayDates = data.map((d) => { return d[xFieldName]; }); if (arrayDates.length) { maxDate = new Date(Math.max.apply(null, arrayDates)); - minDate = new Date(Math.min.apply(null, arrayDates)); - } - const arrMonthsYears = []; - //date axis is in month intervals so check to see how many there are - arrayDates.forEach((item) => { - let my = item.getMonth() + 1 + " " + item.getFullYear(); - if (arrMonthsYears.indexOf(my) === -1) arrMonthsYears.push(my); - }); - if (arrMonthsYears.length < xIntervals - 2) { - /* - * make sure graph has appropiate end points on the graph - * if the total count of data points is less than the initial set number of intervals - */ - let calcMinDate = new Date(minDate.valueOf()); - minDate = calcMinDate.setDate( - calcMinDate.getDate() - 30 * (xIntervals - arrMonthsYears.length + 1) - ); - minDate = new Date(minDate); - //console.log("min date ", minDate, " max date ", maxDate) + minDate = new Date(Math.min.apply(null, [...arrayDates, minDate])); } if (arrayDates.length) { /* @@ -475,28 +456,21 @@ export default class MMEGraph extends Component { todayDataPoint[xFieldName] = todayObj; todayDataPoint[yFieldName] = 0; todayDataPoint["placeholder"] = true; - data = [...data, todayDataPoint]; + const categories = [ + ...new Set(data.filter((d) => !!d.category).map((d) => d.category)), + ]; + data = [ + ...data, + ...categories.map((o) => ({ ...todayDataPoint, category: o })), + ]; maxDate = new Date(); } } let calcMaxDate = new Date(maxDate.valueOf()); - maxDate = calcMaxDate.setDate(calcMaxDate.getDate() + 90); + maxDate = calcMaxDate.setDate(calcMaxDate.getDate() + 30); maxDate = new Date(maxDate); const diffTime = Math.abs(maxDate - minDate); const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); - - let WAData = this.getDefaultDataValueSet( - WA_MAX_VALUE, - baseLineDate, - maxDate, - ...lineParamsSet - ); - let CDCSecondaryData = this.getDefaultDataValueSet( - CDC_SECONDARY_MAX_VALUE, - baseLineDate, - maxDate, - ...lineParamsSet - ); const margins = { top: 24, right: 48, @@ -508,12 +482,27 @@ export default class MMEGraph extends Component { const height = parentHeight - margins.top - margins.bottom; const xScale = scaleTime() .domain([baseLineDate, maxDate]) - .rangeRound([0, width]); + .rangeRound([0, width]) + .nice(); const yMaxValue = Math.max(140, this.getMaxMMEValue(data)); const yScale = scaleLinear() .domain([0, yMaxValue]) .range([height, 0]) .nice(); + let WAData = this.getDefaultDataValueSet( + WA_MAX_VALUE, + // baseLineDate, + xScale.domain()[0], + maxDate, + ...lineParamsSet + ); + let CDCSecondaryData = this.getDefaultDataValueSet( + CDC_SECONDARY_MAX_VALUE, + // baseLineDate, + xScale.domain()[0], + maxDate, + ...lineParamsSet + ); const lineGenerator = line() .x((d) => xScale(d[xFieldName]))