This is an automated email from the ASF dual-hosted git repository.

villebro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git


The following commit(s) were added to refs/heads/master by this push:
     new f94c6d2  fix(native-filters): cascading filters not rendering in tab 
(#14964)
f94c6d2 is described below

commit f94c6d27635d58ad136626340423988465abbec5
Author: Ville Brofeldt <[email protected]>
AuthorDate: Thu Jun 3 12:04:23 2021 +0300

    fix(native-filters): cascading filters not rendering in tab (#14964)
---
 .../FilterBar/FilterControls/FilterControls.tsx    | 35 ++++++++++++----------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git 
a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx
 
b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx
index ab8233c..ded4b1f 100644
--- 
a/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx
+++ 
b/superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.tsx
@@ -72,6 +72,7 @@ const FilterControls: FC<FilterControlsProps> = ({
     }));
     return buildCascadeFiltersTree(filtersWithValue);
   }, [filterValues, dataMaskSelected]);
+  const cascadeFilterIds = new Set(cascadeFilters.map(item => item.id));
 
   let filtersInScope: CascadeFilter[] = [];
   const filtersOutOfScope: CascadeFilter[] = [];
@@ -93,23 +94,25 @@ const FilterControls: FC<FilterControlsProps> = ({
 
   return (
     <Wrapper>
-      {portalNodes.map((node, index) => (
-        <portals.InPortal node={node}>
-          <CascadePopover
-            data-test="cascade-filters-control"
-            key={cascadeFilters[index].id}
-            visible={visiblePopoverId === cascadeFilters[index].id}
-            onVisibleChange={visible =>
-              setVisiblePopoverId(visible ? cascadeFilters[index].id : null)
-            }
-            filter={cascadeFilters[index]}
-            onFilterSelectionChange={onFilterSelectionChange}
-            directPathToChild={directPathToChild}
-          />
-        </portals.InPortal>
-      ))}
+      {portalNodes
+        .filter((node, index) => cascadeFilterIds.has(filterValues[index].id))
+        .map((node, index) => (
+          <portals.InPortal node={node}>
+            <CascadePopover
+              data-test="cascade-filters-control"
+              key={cascadeFilters[index].id}
+              visible={visiblePopoverId === cascadeFilters[index].id}
+              onVisibleChange={visible =>
+                setVisiblePopoverId(visible ? cascadeFilters[index].id : null)
+              }
+              filter={cascadeFilters[index]}
+              onFilterSelectionChange={onFilterSelectionChange}
+              directPathToChild={directPathToChild}
+            />
+          </portals.InPortal>
+        ))}
       {filtersInScope.map(filter => {
-        const index = cascadeFilters.findIndex(f => f.id === filter.id);
+        const index = filterValues.findIndex(f => f.id === filter.id);
         return <portals.OutPortal node={portalNodes[index]} />;
       })}
       {showCollapsePanel && (

Reply via email to