From 8c01c13d90df93112a0c3e6d82b0db623418093c Mon Sep 17 00:00:00 2001 From: Kamil Gabryjelski Date: Fri, 4 Jun 2021 15:15:37 +0200 Subject: [PATCH] fix(native-filters): Fix "undefined" error after editing a filter (#14984) * fix(native-filters): Fix "undefined" error after editing a filter * Remove console log --- .../src/dashboard/actions/nativeFilters.ts | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/superset-frontend/src/dashboard/actions/nativeFilters.ts b/superset-frontend/src/dashboard/actions/nativeFilters.ts index 23ce35d241..e01a5a6724 100644 --- a/superset-frontend/src/dashboard/actions/nativeFilters.ts +++ b/superset-frontend/src/dashboard/actions/nativeFilters.ts @@ -85,11 +85,19 @@ export const setFilterConfiguration = ( endpoint: `/api/v1/dashboard/${id}`, }); + const mergedFilterConfig = filterConfig.map(filter => { + const oldFilter = oldFilters[filter.id]; + if (!oldFilter) { + return filter; + } + return { ...oldFilter, ...filter }; + }); + try { const response = await updateDashboard({ json_metadata: JSON.stringify({ ...metadata, - native_filter_configuration: filterConfig, + native_filter_configuration: mergedFilterConfig, }), }); dispatch( @@ -99,12 +107,20 @@ export const setFilterConfiguration = ( ); dispatch({ type: SET_FILTER_CONFIG_COMPLETE, - filterConfig, + filterConfig: mergedFilterConfig, }); - dispatch(setDataMaskForFilterConfigComplete(filterConfig, oldFilters)); + dispatch( + setDataMaskForFilterConfigComplete(mergedFilterConfig, oldFilters), + ); } catch (err) { - dispatch({ type: SET_FILTER_CONFIG_FAIL, filterConfig }); - dispatch({ type: SET_DATA_MASK_FOR_FILTER_CONFIG_FAIL, filterConfig }); + dispatch({ + type: SET_FILTER_CONFIG_FAIL, + filterConfig: mergedFilterConfig, + }); + dispatch({ + type: SET_DATA_MASK_FOR_FILTER_CONFIG_FAIL, + filterConfig: mergedFilterConfig, + }); } };