Skip to content

Commit

Permalink
frontend: drawerModeSlice: Add drawer mode redux slice
Browse files Browse the repository at this point in the history
Signed-off-by: Vincent T <[email protected]>
  • Loading branch information
vyncent-t committed Dec 10, 2024
1 parent 137f811 commit 72bfd6e
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 0 deletions.
31 changes: 31 additions & 0 deletions frontend/src/redux/drawerModeSlice.ts
Original file line number Diff line number Diff line change
@@ -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<boolean>) => {
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;
2 changes: 2 additions & 0 deletions frontend/src/redux/reducers/reducers.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand All @@ -31,6 +32,7 @@ const reducers = combineReducers({
detailsViewSections: detailsViewSectionReducer,
eventCallbackReducer,
pluginConfigs: pluginConfigReducer,
drawerMode: drawerModeSlice,
});

export type RootState = ReturnType<typeof reducers>;
Expand Down

0 comments on commit 72bfd6e

Please sign in to comment.