From cc0d6c1b1f1350b51be5dddf9c41be2c8cb5f833 Mon Sep 17 00:00:00 2001 From: Chris Cowan Date: Wed, 18 Nov 2020 08:28:16 -0700 Subject: [PATCH] [Metrics UI] Converting legend key to optional (#83495) * [Metrics UI] Converting legend key to optional * Adding check and default to legend component --- .../metrics/inventory_view/components/layout.tsx | 8 ++++++-- .../inventory_view/components/waffle/legend.tsx | 8 ++++++-- .../inventory_view/hooks/use_waffle_options.ts | 15 ++++++++------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/layout.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/layout.tsx index 76512b8a366c..92aa015113b2 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/layout.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/layout.tsx @@ -16,7 +16,7 @@ import { PageContent } from '../../../../components/page'; import { useSnapshot } from '../hooks/use_snaphot'; import { useWaffleTimeContext } from '../hooks/use_waffle_time'; import { useWaffleFiltersContext } from '../hooks/use_waffle_filters'; -import { useWaffleOptionsContext } from '../hooks/use_waffle_options'; +import { DEFAULT_LEGEND, useWaffleOptionsContext } from '../hooks/use_waffle_options'; import { useSourceContext } from '../../../../containers/source'; import { InfraFormatterType } from '../../../../lib/lib'; import { euiStyled } from '../../../../../../observability/public'; @@ -62,10 +62,14 @@ export const Layout = () => { false ); + const legendPalette = legend?.palette ?? DEFAULT_LEGEND.palette; + const legendSteps = legend?.steps ?? DEFAULT_LEGEND.steps; + const legendReverseColors = legend?.reverseColors ?? DEFAULT_LEGEND.reverseColors; + const options = { formatter: InfraFormatterType.percent, formatTemplate: '{{value}}', - legend: createLegend(legend.palette, legend.steps, legend.reverseColors), + legend: createLegend(legendPalette, legendSteps, legendReverseColors), metric, sort, fields: source?.configuration?.fields, diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/legend.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/legend.tsx index c211de8fd3d2..ea7bb66e689d 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/legend.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/legend.tsx @@ -17,7 +17,11 @@ import { import { GradientLegend } from './gradient_legend'; import { LegendControls } from './legend_controls'; import { StepLegend } from './steps_legend'; -import { useWaffleOptionsContext, WaffleLegendOptions } from '../../hooks/use_waffle_options'; +import { + DEFAULT_LEGEND, + useWaffleOptionsContext, + WaffleLegendOptions, +} from '../../hooks/use_waffle_options'; import { SteppedGradientLegend } from './stepped_gradient_legend'; interface Props { legend: InfraWaffleMapLegend; @@ -52,7 +56,7 @@ export const Legend: React.FC = ({ dataBounds, legend, bounds, formatter return ( ;