import {CaseReducer, createAsyncThunk, createSlice, PayloadAction} from "@reduxjs/toolkit"; import {getGlobalConf as getGlobalConfApi} from "src/api/config"; import {GlobalConf} from "src/utils/type"; import {RootState} from "."; const initialState: GlobalConf = { platformConf: {}, loaded: false } const setGlobalConf: CaseReducer> = (_, action) => { return {...action.payload, loaded: true} } export const getGlobalConf = createAsyncThunk( "globalConf/set", getGlobalConfApi, { condition: (_, { getState }) => !(getState() as RootState).globalConf.loaded } ); export const globalConfSlice = createSlice({ name: "globalConf", initialState, reducers: {}, extraReducers: (builder) => { builder.addCase(getGlobalConf.fulfilled, setGlobalConf) } }) export const platformConfSelector = (state: RootState) => state.globalConf.platformConf export default globalConfSlice.reducer