This is an automated email from the ASF dual-hosted git repository.
michaelsmolina 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 e3b14fe fix: Overhead when changing the filter name (#16877)
e3b14fe is described below
commit e3b14fe17063e14e8d1c654944b9cda0a970b0e6
Author: Michael S. Molina <[email protected]>
AuthorDate: Wed Sep 29 07:37:02 2021 -0300
fix: Overhead when changing the filter name (#16877)
---
.../FiltersConfigModal/FiltersConfigModal.tsx | 33 +++++++++++++---------
1 file changed, 20 insertions(+), 13 deletions(-)
diff --git
a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
index f034384..d72156d 100644
---
a/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
+++
b/superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigModal.tsx
@@ -17,8 +17,9 @@
* under the License.
*/
import React, { useCallback, useMemo, useState, useRef } from 'react';
-import { uniq } from 'lodash';
+import { uniq, debounce } from 'lodash';
import { t, styled } from '@superset-ui/core';
+import { SLOW_DEBOUNCE } from 'src/constants';
import { Form } from 'src/common/components';
import { StyledModal } from 'src/components/Modal';
import ErrorBoundary from 'src/components/ErrorBoundary';
@@ -233,6 +234,23 @@ export function FiltersConfigModal({
}
};
+ const onValuesChange = useMemo(
+ () =>
+ debounce((changes: any, values: NativeFiltersForm) => {
+ if (
+ changes.filters &&
+ Object.values(changes.filters).some(
+ (filter: any) => filter.name != null,
+ )
+ ) {
+ // we only need to set this if a name changed
+ setFormValues(values);
+ }
+ setSaveAlertVisible(false);
+ }, SLOW_DEBOUNCE),
+ [],
+ );
+
return (
<StyledModalWrapper
visible={isOpen}
@@ -259,18 +277,7 @@ export function FiltersConfigModal({
<StyledForm
preserve={false}
form={form}
- onValuesChange={(changes, values: NativeFiltersForm) => {
- if (
- changes.filters &&
- Object.values(changes.filters).some(
- (filter: any) => filter.name != null,
- )
- ) {
- // we only need to set this if a name changed
- setFormValues(values);
- }
- setSaveAlertVisible(false);
- }}
+ onValuesChange={onValuesChange}
layout="vertical"
>
<FilterTabs