import {createSlice} from '@reduxjs/toolkit'; import type {PayloadAction} from '@reduxjs/toolkit'; import { PREFERENCES_VARS, preferences_vars_default, RegisterProcess, } from './appVar'; import LangFormat from '@lang/default'; import {lang as defaultLang} from '@lang/en'; import {UserId} from './types'; import {MyUserAccount} from '@user/types'; import {ThemeMode} from './colors'; export interface appVariablesState { preferences: PREFERENCES_VARS; lang: LangFormat; } const initialState: appVariablesState = { preferences: preferences_vars_default, lang: defaultLang, }; export const appVariablesSlice = createSlice({ name: 'appVariables', initialState, reducers: { setTheme: (state, action: PayloadAction) => { state.preferences.theme = action.payload; }, setLang: (state, action: PayloadAction) => { state.lang = action.payload; }, loadPreferences: (state, action: PayloadAction) => { state.preferences = action.payload; }, setRegisterProcess: (state, action: PayloadAction) => { state.preferences.RegisterProcess = action.payload; }, setCurrentAccount: (state, action: PayloadAction) => { state.preferences.selectedAccount = action.payload; }, setAccount: (state, action: PayloadAction) => { state.preferences.accounts[action.payload.UserId] = action.payload; }, setDBEK: (state, action: PayloadAction) => { state.preferences.dbek = action.payload; }, }, }); // Action creators are generated for each case reducer function const {actions} = appVariablesSlice; export const appVarActions = actions; export default appVariablesSlice.reducer;