From 2defa10d37a371f400db432a49bfcbb12d6e470d Mon Sep 17 00:00:00 2001 From: "Michael S. Molina" <70410625+michael-s-molina@users.noreply.github.com> Date: Wed, 15 May 2024 16:12:40 -0300 Subject: [PATCH] chore: Adds setActiveTabs back (#28520) --- .../src/dashboard/actions/dashboardState.js | 7 +++++++ .../src/dashboard/reducers/dashboardState.js | 7 +++++++ .../src/dashboard/reducers/dashboardState.test.ts | 13 ++++++++++++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/superset-frontend/src/dashboard/actions/dashboardState.js b/superset-frontend/src/dashboard/actions/dashboardState.js index 47ebc8951e..b0e8a2719e 100644 --- a/superset-frontend/src/dashboard/actions/dashboardState.js +++ b/superset-frontend/src/dashboard/actions/dashboardState.js @@ -603,6 +603,13 @@ export function setActiveTab(tabId, prevTabId) { return { type: SET_ACTIVE_TAB, tabId, prevTabId }; } +// Even though SET_ACTIVE_TABS is not being called from Superset's codebase, +// it is being used by Preset extensions. +export const SET_ACTIVE_TABS = 'SET_ACTIVE_TABS'; +export function setActiveTabs(activeTabs) { + return { type: SET_ACTIVE_TABS, activeTabs }; +} + export const SET_FOCUSED_FILTER_FIELD = 'SET_FOCUSED_FILTER_FIELD'; export function setFocusedFilterField(chartId, column) { return { type: SET_FOCUSED_FILTER_FIELD, chartId, column }; diff --git a/superset-frontend/src/dashboard/reducers/dashboardState.js b/superset-frontend/src/dashboard/reducers/dashboardState.js index ebef4db035..015cb9822c 100644 --- a/superset-frontend/src/dashboard/reducers/dashboardState.js +++ b/superset-frontend/src/dashboard/reducers/dashboardState.js @@ -38,6 +38,7 @@ import { SET_FOCUSED_FILTER_FIELD, UNSET_FOCUSED_FILTER_FIELD, SET_ACTIVE_TAB, + SET_ACTIVE_TABS, SET_FULL_SIZE_CHART_ID, ON_FILTERS_REFRESH, ON_FILTERS_REFRESH_SUCCESS, @@ -188,6 +189,12 @@ export default function dashboardStateReducer(state = {}, action) { activeTabs: Array.from(newActiveTabs), }; }, + [SET_ACTIVE_TABS]() { + return { + ...state, + activeTabs: action.activeTabs, + }; + }, [SET_OVERRIDE_CONFIRM]() { return { ...state, diff --git a/superset-frontend/src/dashboard/reducers/dashboardState.test.ts b/superset-frontend/src/dashboard/reducers/dashboardState.test.ts index 378c5978f9..fea67149fa 100644 --- a/superset-frontend/src/dashboard/reducers/dashboardState.test.ts +++ b/superset-frontend/src/dashboard/reducers/dashboardState.test.ts @@ -18,7 +18,7 @@ */ import dashboardStateReducer from './dashboardState'; -import { setActiveTab } from '../actions/dashboardState'; +import { setActiveTab, setActiveTabs } from '../actions/dashboardState'; describe('DashboardState reducer', () => { it('SET_ACTIVE_TAB', () => { @@ -35,4 +35,15 @@ describe('DashboardState reducer', () => { ), ).toEqual({ activeTabs: ['tab2'] }); }); + it('SET_ACTIVE_TABS', () => { + expect( + dashboardStateReducer({ activeTabs: [] }, setActiveTabs(['tab1'])), + ).toEqual({ activeTabs: ['tab1'] }); + expect( + dashboardStateReducer( + { activeTabs: ['tab1', 'tab2'] }, + setActiveTabs(['tab3', 'tab4']), + ), + ).toEqual({ activeTabs: ['tab3', 'tab4'] }); + }); });