You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jo...@apache.org on 2023/03/14 18:55:39 UTC
[superset] branch master updated: fix(native-filters): Caching scope (#23314)
This is an automated email from the ASF dual-hosted git repository.
johnbodley 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 d2c1fb95ec fix(native-filters): Caching scope (#23314)
d2c1fb95ec is described below
commit d2c1fb95ec4df911abd1035c45f396df1665ba9b
Author: John Bodley <45...@users.noreply.github.com>
AuthorDate: Wed Mar 15 07:55:28 2023 +1300
fix(native-filters): Caching scope (#23314)
---
.../cypress/integration/dashboard/nativeFilters.test.ts | 6 +++---
.../FiltersConfigForm/ColumnSelect.tsx | 12 ++----------
.../FiltersConfigForm/DatasetSelect.tsx | 13 ++-----------
.../FiltersConfigForm/FiltersConfigForm.tsx | 11 +----------
.../FiltersConfigModal/FiltersConfigForm/utils.ts | 16 +++++++++++++++-
5 files changed, 23 insertions(+), 35 deletions(-)
diff --git a/superset-frontend/cypress-base/cypress/integration/dashboard/nativeFilters.test.ts b/superset-frontend/cypress-base/cypress/integration/dashboard/nativeFilters.test.ts
index 1e119ae775..3126b75625 100644
--- a/superset-frontend/cypress-base/cypress/integration/dashboard/nativeFilters.test.ts
+++ b/superset-frontend/cypress-base/cypress/integration/dashboard/nativeFilters.test.ts
@@ -576,7 +576,7 @@ describe('Native filters', () => {
},
);
saveNativeFilterSettings([SAMPLE_CHART]);
- enterNativeFilterEditModal();
+ enterNativeFilterEditModal(false);
cy.get(nativeFilters.modal.tabsList.removeTab)
.should('be.visible')
.first()
@@ -812,7 +812,7 @@ describe('Native filters', () => {
force: true,
});
cancelNativeFilterSettings();
- enterNativeFilterEditModal();
+ enterNativeFilterEditModal(false);
cy.get(nativeFilters.filtersList.removeIcon).first().click();
cy.contains('You have removed this filter.').should('be.visible');
});
@@ -855,7 +855,7 @@ describe('Native filters', () => {
.contains(testItems.filterDefaultValue)
.should('be.visible');
validateFilterNameOnDashboard(testItems.topTenChart.filterColumn);
- enterNativeFilterEditModal();
+ enterNativeFilterEditModal(false);
deleteNativeFilter();
saveNativeFilterSettings([SAMPLE_CHART]);
cy.get(dataTestChartName(testItems.topTenChart.name)).within(() => {
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/ColumnSelect.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/ColumnSelect.tsx
index 758b9fd602..4fb2b21469 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/ColumnSelect.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/ColumnSelect.tsx
@@ -17,13 +17,13 @@
* under the License.
*/
import React, { useCallback, useState, useMemo, useEffect } from 'react';
-import { Column, ensureIsArray, SupersetClient, t } from '@superset-ui/core';
+import { Column, ensureIsArray, t } from '@superset-ui/core';
import { useChangeEffect } from 'src/hooks/useChangeEffect';
import { Select, FormInstance } from 'src/components';
import { useToasts } from 'src/components/MessageToasts/withToasts';
import { getClientErrorObject } from 'src/utils/getClientErrorObject';
-import { cacheWrapper } from 'src/utils/cacheWrapper';
import { NativeFiltersForm } from '../types';
+import { cachedSupersetGet } from './utils';
interface ColumnSelectProps {
allowClear?: boolean;
@@ -37,14 +37,6 @@ interface ColumnSelectProps {
mode?: 'multiple';
}
-const localCache = new Map<string, any>();
-
-const cachedSupersetGet = cacheWrapper(
- SupersetClient.get,
- localCache,
- ({ endpoint }) => endpoint || '',
-);
-
/** Special purpose AsyncSelect that selects a column from a dataset */
// eslint-disable-next-line import/prefer-default-export
export function ColumnSelect({
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DatasetSelect.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DatasetSelect.tsx
index fa0b4fbea0..db1c6d4124 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DatasetSelect.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DatasetSelect.tsx
@@ -18,22 +18,13 @@
*/
import React, { useCallback, useMemo } from 'react';
import rison from 'rison';
-import { t, SupersetClient } from '@superset-ui/core';
+import { t } from '@superset-ui/core';
import { AsyncSelect } from 'src/components';
-import { cacheWrapper } from 'src/utils/cacheWrapper';
import {
ClientErrorObject,
getClientErrorObject,
} from 'src/utils/getClientErrorObject';
-import { datasetToSelectOption } from './utils';
-
-const localCache = new Map<string, any>();
-
-const cachedSupersetGet = cacheWrapper(
- SupersetClient.get,
- localCache,
- ({ endpoint }) => endpoint || '',
-);
+import { cachedSupersetGet, datasetToSelectOption } from './utils';
interface DatasetSelectProps {
onChange: (value: { label: string; value: number }) => void;
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
index 4c18a2c85c..068e6300e8 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/FiltersConfigForm.tsx
@@ -34,7 +34,6 @@ import {
NativeFilterType,
styled,
SupersetApiError,
- SupersetClient,
t,
} from '@superset-ui/core';
import { isEqual } from 'lodash';
@@ -70,7 +69,6 @@ import DateFilterControl from 'src/explore/components/controls/DateFilterControl
import AdhocFilterControl from 'src/explore/components/controls/FilterControl/AdhocFilterControl';
import { FeatureFlag, isFeatureEnabled } from 'src/featureFlags';
import { waitForAsyncData } from 'src/middleware/asyncEvent';
-import { cacheWrapper } from 'src/utils/cacheWrapper';
import { ClientErrorObject } from 'src/utils/getClientErrorObject';
import { SingleValueType } from 'src/filters/components/Range/SingleValueType';
import {
@@ -91,6 +89,7 @@ import getControlItemsMap from './getControlItemsMap';
import RemovedFilter from './RemovedFilter';
import { useBackendFormUpdate, useDefaultValue } from './state';
import {
+ cachedSupersetGet,
FILTER_SUPPORTED_TYPES,
hasTemporalColumns,
mostUsedDataset,
@@ -322,14 +321,6 @@ const FILTER_TYPE_NAME_MAPPING = {
[t('Group By')]: t('Group by'),
};
-const localCache = new Map<string, any>();
-
-const cachedSupersetGet = cacheWrapper(
- SupersetClient.get,
- localCache,
- ({ endpoint }) => endpoint || '',
-);
-
/**
* The configuration form for a specific filter.
* Assigns field values to `filters[filterId]` in the form.
diff --git a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/utils.ts b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/utils.ts
index 77e27a4211..4344806591 100644
--- a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/utils.ts
+++ b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/utils.ts
@@ -20,8 +20,14 @@ import { flatMapDeep } from 'lodash';
import { FormInstance } from 'src/components';
import React from 'react';
import { CustomControlItem, Dataset } from '@superset-ui/chart-controls';
-import { Column, ensureIsArray, GenericDataType } from '@superset-ui/core';
+import {
+ Column,
+ ensureIsArray,
+ GenericDataType,
+ SupersetClient,
+} from '@superset-ui/core';
import { DatasourcesState, ChartsState } from 'src/dashboard/types';
+import { cacheWrapper } from 'src/utils/cacheWrapper';
const FILTERS_FIELD_NAME = 'filters';
@@ -130,3 +136,11 @@ export const mostUsedDataset = (
return datasets[mostUsedDataset]?.id;
};
+
+const localCache = new Map<string, any>();
+
+export const cachedSupersetGet = cacheWrapper(
+ SupersetClient.get,
+ localCache,
+ ({ endpoint }) => endpoint || '',
+);