import { createSlice, PayloadAction } from '@reduxjs/toolkit'; interface K8sState { selectedClusterId: number | null; selectedNamespaceId: number | null; } const initialState: K8sState = { selectedClusterId: localStorage.getItem('k8s_selectedClusterId') ? Number(localStorage.getItem('k8s_selectedClusterId')) : null, selectedNamespaceId: localStorage.getItem('k8s_selectedNamespaceId') ? Number(localStorage.getItem('k8s_selectedNamespaceId')) : null, }; const k8sSlice = createSlice({ name: 'k8s', initialState, reducers: { setSelectedClusterId: (state, action: PayloadAction) => { state.selectedClusterId = action.payload; if (action.payload !== null) { localStorage.setItem('k8s_selectedClusterId', String(action.payload)); } else { localStorage.removeItem('k8s_selectedClusterId'); } }, setSelectedNamespaceId: (state, action: PayloadAction) => { state.selectedNamespaceId = action.payload; if (action.payload !== null) { localStorage.setItem('k8s_selectedNamespaceId', String(action.payload)); } else { localStorage.removeItem('k8s_selectedNamespaceId'); } }, clearK8sSelection: (state) => { state.selectedClusterId = null; state.selectedNamespaceId = null; localStorage.removeItem('k8s_selectedClusterId'); localStorage.removeItem('k8s_selectedNamespaceId'); }, }, }); export const { setSelectedClusterId, setSelectedNamespaceId, clearK8sSelection } = k8sSlice.actions; export default k8sSlice.reducer;