import React from 'react'; import { AnyAction, combineReducers } from 'redux'; import { configureStore } from '@reduxjs/toolkit'; import { ReactReduxContextValue } from 'react-redux'; import authReducer, { authActions } from './auth/authSlice'; import callLogReducer from './callLogs/callLogSlice'; import bubblesReducer from './bubbles/bubblesSlice'; import contactsReducer from './contacts/contactsSlice'; import conversationsReducer from './conversations/conversationSlice'; import invitationsReducer from './invitations/invitationsSlice'; import pbxReducer from './pbx/pbxSlice'; import searchReducer from './search/searchSlice'; import appConfigReducer, {appConfigActions} from './configuration/appConfigSlice'; import currentCallReducer from './currentCall/currentCallSlice'; import webrtcReducer from './webrtc/webrtcSlice'; import conferenceReducer from './conference/conferenceSlice' import messagesReducer from './messages/messagesSlice'; export type AppState = ReturnType; const rootReducer = combineReducers({ contacts: contactsReducer, authReducer, webrtc: webrtcReducer, conversations: conversationsReducer, callLogs: callLogReducer, messages: messagesReducer, appConfigReducer, bubbles: bubblesReducer, search: searchReducer, invitations: invitationsReducer, pbx: pbxReducer, currentCall: currentCallReducer, conference: conferenceReducer }); export const actions = { auth: authActions, appConfig:appConfigActions // Add other actions here }; // export const store = createStore(rootReducer, {}, ); export const store = configureStore({ reducer: rootReducer, devTools: process.env.NODE_ENV !== 'production', // Enable Redux DevTools only in development } ); export const RainbowContext: React.Context> = React.createContext({ store, storeState: store.getState() }); export type AppDispatch = typeof store.dispatch; export type RootState = ReturnType;