From da76c87bfe914e1d30fc55fd0bfeaa80ed3f1082 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Mon, 13 Jun 2022 09:47:36 -0400 Subject: [PATCH] Loki: Fix showing of duplicated label values in dropdown in query builder (#50680) (#50688) * Prometheus,Loki: Fix showing of duplicated values in dropdown * Use different more readable solution * Update (cherry picked from commit 77bdbe1deac3153859d2173b7a3ff029a76a64c3) Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com> --- .../prometheus/querybuilder/shared/LabelFilterItem.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/public/app/plugins/datasource/prometheus/querybuilder/shared/LabelFilterItem.tsx b/public/app/plugins/datasource/prometheus/querybuilder/shared/LabelFilterItem.tsx index f3dd25134af..44800ebb69b 100644 --- a/public/app/plugins/datasource/prometheus/querybuilder/shared/LabelFilterItem.tsx +++ b/public/app/plugins/datasource/prometheus/querybuilder/shared/LabelFilterItem.tsx @@ -1,3 +1,4 @@ +import { uniqBy } from 'lodash'; import React, { useState } from 'react'; import { SelectableValue, toOption } from '@grafana/data'; @@ -38,7 +39,11 @@ export function LabelFilterItem({ item, defaultOp, onChange, onDelete, onGetLabe }; const getOptions = (): SelectableValue[] => { - return [...getSelectOptionsFromString(item?.value).map(toOption), ...(state.labelValues ?? [])]; + const labelValues = state.labelValues ? [...state.labelValues] : []; + const selectedOptions = getSelectOptionsFromString(item?.value).map(toOption); + + // Remove possible duplicated values + return uniqBy([...selectedOptions, ...labelValues], 'value'); }; return (