diff --git a/frontend/src/redux/drawerModeSlice.ts b/frontend/src/redux/drawerModeSlice.ts new file mode 100644 index 00000000000..2b5d672d7d6 --- /dev/null +++ b/frontend/src/redux/drawerModeSlice.ts @@ -0,0 +1,31 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit'; +import { KubeObject } from '../lib/k8s/KubeObject'; + +interface DrawerModeState { + isDetailDrawerEnabled: boolean; + selectedResource: KubeObject | undefined; +} + +const getLocalDrawerStatus = (key: string) => localStorage.getItem(key) === 'true'; + +const initialState: DrawerModeState = { + isDetailDrawerEnabled: getLocalDrawerStatus('detailDrawerEnabled'), + selectedResource: undefined, +}; + +const drawerModeSlice = createSlice({ + name: 'drawerMode', + initialState, + reducers: { + setDetailDrawerEnabled: (state, action: PayloadAction) => { + state.isDetailDrawerEnabled = action.payload; + localStorage.setItem('detailDrawerEnabled', `${action.payload}`); + }, + setSelectedResource: (state, action: any) => { + state.selectedResource = action.payload; + }, + }, +}); + +export const { setDetailDrawerEnabled, setSelectedResource } = drawerModeSlice.actions; +export default drawerModeSlice.reducer; diff --git a/frontend/src/redux/reducers/reducers.tsx b/frontend/src/redux/reducers/reducers.tsx index 7ce7debc451..beca4c85cb6 100644 --- a/frontend/src/redux/reducers/reducers.tsx +++ b/frontend/src/redux/reducers/reducers.tsx @@ -6,6 +6,7 @@ import pluginsReducer from '../../plugin/pluginsSlice'; import actionButtons from '../actionButtonsSlice'; import clusterAction from '../clusterActionSlice'; import configReducer from '../configSlice'; +import drawerModeSlice from '../drawerModeSlice'; import filterReducer from '../filterSlice'; import eventCallbackReducer from '../headlampEventSlice'; import routesReducer from '../routesSlice'; @@ -31,6 +32,7 @@ const reducers = combineReducers({ detailsViewSections: detailsViewSectionReducer, eventCallbackReducer, pluginConfigs: pluginConfigReducer, + drawerMode: drawerModeSlice, }); export type RootState = ReturnType;