From 5c3ad966a12f7da6153de0a67b81a990a0f5a079 Mon Sep 17 00:00:00 2001 From: Karan Hotchandani <33024356+karanh37@users.noreply.github.com> Date: Thu, 31 Oct 2024 09:01:26 +0530 Subject: [PATCH] fix empty rule state in query builder (#18481) --- .../QueryBuilderWidget/QueryBuilderWidget.tsx | 19 ++++++++++--------- .../query-builder-widget.less | 4 ++++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/QueryBuilderWidget/QueryBuilderWidget.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/QueryBuilderWidget/QueryBuilderWidget.tsx index 21d181da82b..962c02172e5 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/QueryBuilderWidget/QueryBuilderWidget.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/QueryBuilderWidget/QueryBuilderWidget.tsx @@ -103,7 +103,7 @@ const QueryBuilderWidget: FC = ({ onTreeUpdate(nTree, nConfig); if (outputType === QueryBuilderOutputType.ELASTICSEARCH) { - const data = elasticSearchFormat(nTree, config) ?? {}; + const data = elasticSearchFormat(nTree, config) ?? ''; const qFilter = { query: data, }; @@ -111,7 +111,7 @@ const QueryBuilderWidget: FC = ({ debouncedFetchEntityCount(qFilter); } - onChange(JSON.stringify(qFilter)); + onChange(!isEmpty(data) ? JSON.stringify(qFilter) : ''); } else { const data = QbUtils.jsonLogicFormat(nTree, config); onChange(JSON.stringify(data.logic ?? '{}')); @@ -125,13 +125,14 @@ const QueryBuilderWidget: FC = ({ useEffect(() => { if (!isEmpty(value)) { if (outputType === QueryBuilderOutputType.ELASTICSEARCH) { - const tree = QbUtils.checkTree( - QbUtils.loadTree( - getJsonTreeFromQueryFilter(JSON.parse(value || '')) as JsonTree - ), - config - ); - onTreeUpdate(tree, config); + const parsedTree = getJsonTreeFromQueryFilter( + JSON.parse(value || '') + ) as JsonTree; + + if (Object.keys(parsedTree).length > 0) { + const tree = QbUtils.checkTree(QbUtils.loadTree(parsedTree), config); + onTreeUpdate(tree, config); + } } else { const tree = QbUtils.loadFromJsonLogic(JSON.parse(value || ''), config); if (tree) { diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/QueryBuilderWidget/query-builder-widget.less b/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/QueryBuilderWidget/query-builder-widget.less index f7b038a2c95..fd632166d27 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/QueryBuilderWidget/query-builder-widget.less +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/Form/JSONSchema/JsonSchemaWidgets/QueryBuilderWidget/query-builder-widget.less @@ -176,4 +176,8 @@ } } } + + .rule-container:first-child .action--DELETE { + display: none; + } }