diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/state.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/state.ts index 9cd4490e9dbf2..8926c60be02cc 100644 --- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/state.ts +++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FilterScope/state.ts @@ -51,8 +51,9 @@ export function useFilterScopeTree( const validNodes = useMemo( () => Object.values(layout).reduce((acc, cur) => { - if (cur?.type === CHART_TYPE && currentChartId !== cur?.meta?.chartId) { - return [...new Set([...acc, ...cur?.parents, cur.id])]; + const { id, parents = [], type, meta } = cur; + if (type === CHART_TYPE && currentChartId !== meta?.chartId) { + return [...new Set([...acc, ...parents, id])]; } return acc; }, []), diff --git a/superset-frontend/src/dataMask/actions.ts b/superset-frontend/src/dataMask/actions.ts index 5432c30d4d11f..331be07a540c5 100644 --- a/superset-frontend/src/dataMask/actions.ts +++ b/superset-frontend/src/dataMask/actions.ts @@ -18,6 +18,7 @@ */ import { DataMaskType, MaskWithId } from './types'; import { FilterConfiguration } from '../dashboard/components/nativeFilters/types'; +import { FeatureFlag, isFeatureEnabled } from '../featureFlags'; export const UPDATE_DATA_MASK = 'UPDATE_DATA_MASK'; export interface UpdateDataMask { @@ -50,10 +51,22 @@ export function updateDataMask( ownFilters?: Omit; }, ): UpdateDataMask { + const { nativeFilters, crossFilters, ownFilters } = dataMask; + const filteredDataMask: { + nativeFilters?: Omit; + crossFilters?: Omit; + ownFilters?: Omit; + } = { ownFilters }; + if (isFeatureEnabled(FeatureFlag.DASHBOARD_NATIVE_FILTERS) && nativeFilters) { + filteredDataMask.nativeFilters = nativeFilters; + } + if (isFeatureEnabled(FeatureFlag.DASHBOARD_CROSS_FILTERS) && crossFilters) { + filteredDataMask.crossFilters = crossFilters; + } return { type: UPDATE_DATA_MASK, filterId, - ...dataMask, + ...filteredDataMask, }; }