From 727da3c25e70a5eae47d7400165303adf8947b9c Mon Sep 17 00:00:00 2001 From: Shekar Siri Date: Wed, 22 Jan 2025 15:34:43 +0100 Subject: [PATCH] fix(ui): conditional filters check for meta fields --- frontend/app/mstore/types/filterItem.ts | 19 +++++++++++++++++-- frontend/app/types/filter/newFilter.js | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/frontend/app/mstore/types/filterItem.ts b/frontend/app/mstore/types/filterItem.ts index 6082aae4b..d055cfd66 100644 --- a/frontend/app/mstore/types/filterItem.ts +++ b/frontend/app/mstore/types/filterItem.ts @@ -1,12 +1,13 @@ import { FilterCategory, FilterKey, FilterType } from 'Types/filter/filterType'; import { conditionalFiltersMap, - filtersMap, - mobileConditionalFiltersMap, + filtersMap, getMetadataLabel, + mobileConditionalFiltersMap } from 'Types/filter/newFilter'; import { action, makeAutoObservable, observable } from 'mobx'; import { pageUrlOperators } from '../../constants/filterOptions'; +import filterOptions from '@/constants/filterOptions'; export default class FilterItem { type: string = ''; @@ -103,6 +104,20 @@ export default class FilterItem { // @ts-ignore _filter = subFilterMap[json.type]; } + + if (isMetadata && !_filter) { + _filter = { + key: json.source, + type: FilterType.MULTIPLE, + category: FilterCategory.METADATA, + label: getMetadataLabel(json.source), + operator: 'is', + operatorOptions: filterOptions.stringConditional, + isEvent: false, + value: json.value, + icon: 'filters/metadata', + } + } this.type = _filter.type; this.key = _filter.key; this.label = _filter.label; diff --git a/frontend/app/types/filter/newFilter.js b/frontend/app/types/filter/newFilter.js index 38ea74baa..ce51d9e57 100644 --- a/frontend/app/types/filter/newFilter.js +++ b/frontend/app/types/filter/newFilter.js @@ -1032,7 +1032,7 @@ export const addOptionsToFilter = ( } }; -function getMetadataLabel(key) { +export function getMetadataLabel(key) { return key.replace(/^_/, '').charAt(0).toUpperCase() + key.slice(2); }