import { createSlice, PayloadAction } from "@reduxjs/toolkit"; interface State { locale: Locale; appearance: Appearance; systemStatus: SystemStatus; } const globalSlice = createSlice({ name: "global", initialState: { locale: "en", appearance: "system", systemStatus: { host: undefined, profile: { mode: "dev", version: "", }, dbSize: 0, allowSignUp: false, additionalStyle: "", additionalScript: "", }, } as State, reducers: { setGlobalState: (_, action: PayloadAction) => { return action.payload; }, setLocale: (state, action: PayloadAction) => { return { ...state, locale: action.payload, }; }, setAppearance: (state, action: PayloadAction) => { return { ...state, appearance: action.payload, }; }, }, }); export const { setGlobalState, setLocale, setAppearance } = globalSlice.actions; export default globalSlice.reducer;