@elastic-suite/gally-admin-components
Version:
Components package for gally admin BO
41 lines (34 loc) • 1.01 kB
text/typescript
import { PayloadAction, createSlice } from '@reduxjs/toolkit'
import {
Bundle,
IApi,
IConfigurations,
} from '@elastic-suite/gally-admin-shared'
import { RootState } from './store'
export interface IDataState {
api: IApi
bundles: Bundle[]
configurations: IConfigurations
}
const initialState: IDataState = {
api: null,
bundles: null,
configurations: null,
}
const dataSlice = createSlice({
name: 'data',
initialState,
reducers: {
setData(state, action: PayloadAction<IDataState>) {
state.api = action.payload.api
state.bundles = action.payload.bundles
state.configurations = action.payload.configurations
},
},
})
export const { setData } = dataSlice.actions
export const dataReducer = dataSlice.reducer
export const selectApi = (state: RootState): IApi => state.data.api
export const selectBundles = (state: RootState): Bundle[] => state.data.bundles
export const selectConfiguration = (state: RootState): IConfigurations =>
state.data.configurations