Skip to content

Commit

Permalink
Update current chart type definition
Browse files Browse the repository at this point in the history
  • Loading branch information
sulemanof committed Oct 1, 2020
1 parent 600b909 commit 7d95bf6
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 44 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -134,34 +134,6 @@ describe('MetricsAxisOptions component', () => {
const updatedSeries = [{ ...chart, data: { id: agg.id, label: agg.makeLabel() } }];
expect(setValue).toHaveBeenCalledWith(SERIES_PARAMS, updatedSeries);
});

it('should update visType when one seriesParam', () => {
const comp = mount(<MetricsAxisOptions {...defaultProps} />);
expect(defaultProps.vis.type.type).toBe(ChartTypes.AREA);

comp.setProps({
stateParams: {
...defaultProps.stateParams,
seriesParams: [{ ...chart, type: ChartTypes.LINE }],
},
});

expect(setValue).toHaveBeenLastCalledWith('type', ChartTypes.LINE);
});

it('should set histogram visType when multiple seriesParam', () => {
const comp = mount(<MetricsAxisOptions {...defaultProps} />);
expect(defaultProps.vis.type.type).toBe(ChartTypes.AREA);

comp.setProps({
stateParams: {
...defaultProps.stateParams,
seriesParams: [chart, { ...chart, type: ChartTypes.LINE }],
},
});

expect(setValue).toHaveBeenLastCalledWith('type', ChartTypes.HISTOGRAM);
});
});

describe('updateAxisTitle', () => {
Expand Down Expand Up @@ -193,10 +165,10 @@ describe('MetricsAxisOptions component', () => {
const updatedSeriesParams = [{ ...chart, data: { ...chart.data, label: agg.makeLabel() } }];
const updatedValues = [{ ...axis, title: { text: agg.makeLabel() } }];

expect(setValue).toHaveBeenCalledTimes(6);
expect(setValue).toHaveBeenNthCalledWith(4, SERIES_PARAMS, updatedSeriesParams);
expect(setValue).toHaveBeenNthCalledWith(6, SERIES_PARAMS, updatedSeriesParams);
expect(setValue).toHaveBeenNthCalledWith(5, VALUE_AXES, updatedValues);
expect(setValue).toHaveBeenCalledTimes(5);
expect(setValue).toHaveBeenNthCalledWith(3, SERIES_PARAMS, updatedSeriesParams);
expect(setValue).toHaveBeenNthCalledWith(5, SERIES_PARAMS, updatedSeriesParams);
expect(setValue).toHaveBeenNthCalledWith(4, VALUE_AXES, updatedValues);
});

it('should not set the custom title to match the value axis label when more than one agg exists for that axis', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
*/

import React, { useState, useEffect, useCallback, useMemo } from 'react';
import { cloneDeep, uniq, get } from 'lodash';
import { cloneDeep, get } from 'lodash';
import { EuiSpacer } from '@elastic/eui';

import { IAggConfig } from 'src/plugins/data/public';
Expand Down Expand Up @@ -293,15 +293,6 @@ function MetricsAxisOptions(props: ValidationVisOptionsProps<BasicVislibParams>)
updateAxisTitle(updatedSeries);
}, [metrics, firstValueAxesId, setValue, stateParams.seriesParams, updateAxisTitle]);

const visType = useMemo(() => {
const types = uniq(stateParams.seriesParams.map(({ type }) => type));
return types.length === 1 ? types[0] : 'histogram';
}, [stateParams.seriesParams]);

useEffect(() => {
setValue('type', visType);
}, [setValue, visType]);

return isTabSelected ? (
<>
<SeriesPanel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,11 @@
* specific language governing permissions and limitations
* under the License.
*/
import React from 'react';
import React, { useMemo } from 'react';
import { EuiPanel, EuiTitle, EuiSpacer } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n/react';
import { uniq } from 'lodash';

import { ValidationVisOptionsProps } from '../../common';
import { BasicOptions, SwitchOption } from '../../../../../charts/public';
Expand All @@ -31,6 +32,10 @@ import { ChartTypes } from '../../../utils/collections';
function PointSeriesOptions(props: ValidationVisOptionsProps<BasicVislibParams>) {
const { stateParams, setValue, vis } = props;

const currentChartTypes = useMemo(() => uniq(stateParams.seriesParams.map(({ type }) => type)), [
stateParams.seriesParams,
]);

return (
<>
<EuiPanel paddingSize="s">
Expand Down Expand Up @@ -68,7 +73,7 @@ function PointSeriesOptions(props: ValidationVisOptionsProps<BasicVislibParams>)
/>
)}

{stateParams.type === ChartTypes.HISTOGRAM && (
{currentChartTypes.includes(ChartTypes.HISTOGRAM) && (
<SwitchOption
data-test-subj="showValuesOnChart"
label={i18n.translate('visTypeVislib.editors.pointSeries.showLabels', {
Expand Down

0 comments on commit 7d95bf6

Please sign in to comment.