From 9e557a0ebe526ab04d6e389a49f45f3f10976d06 Mon Sep 17 00:00:00 2001 From: Vikrant Gupta Date: Fri, 22 Mar 2024 13:39:47 +0530 Subject: [PATCH] feat: [SIG-571]: added support for has and nhas operator for json filter (#4736) * feat: [SIG-571]: added support for has and nhas operator for json filter * fix: address review comments --------- Co-authored-by: Nityananda Gohain --- frontend/src/hooks/queryBuilder/useOperators.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/frontend/src/hooks/queryBuilder/useOperators.ts b/frontend/src/hooks/queryBuilder/useOperators.ts index 63f4a9222a..11cc797667 100644 --- a/frontend/src/hooks/queryBuilder/useOperators.ts +++ b/frontend/src/hooks/queryBuilder/useOperators.ts @@ -1,4 +1,7 @@ -import { QUERY_BUILDER_OPERATORS_BY_TYPES } from 'constants/queryBuilder'; +import { + OPERATORS, + QUERY_BUILDER_OPERATORS_BY_TYPES, +} from 'constants/queryBuilder'; import { getRemovePrefixFromKey } from 'container/QueryBuilder/filters/QueryBuilderSearch/utils'; import { useMemo } from 'react'; import { BaseAutocompleteData } from 'types/api/queryBuilder/queryAutocompleteResponse'; @@ -16,9 +19,14 @@ export const useOperators = ( ): IOperators => useMemo(() => { const currentKey = keys?.find((el) => el.key === getRemovePrefixFromKey(key)); + const strippedKey = key.split(' ')[0]; + + // eslint-disable-next-line no-nested-ternary return currentKey?.dataType ? QUERY_BUILDER_OPERATORS_BY_TYPES[ currentKey.dataType as keyof typeof QUERY_BUILDER_OPERATORS_BY_TYPES ] + : strippedKey.endsWith('[*]') && strippedKey.startsWith('body.') + ? [OPERATORS.HAS, OPERATORS.NHAS] : QUERY_BUILDER_OPERATORS_BY_TYPES.universal; }, [keys, key]);