import { configureStore } from "@reduxjs/toolkit"; import { setupListeners } from "@reduxjs/toolkit/query"; import programsSliceReducer from "../../features/programs/programsSlice"; import workplaceCreateSliceReducer from "../../features/workplace_create/workplaceCreateSlice"; import taskbarApi from "../../apis/backend"; import { dataApi } from "../../apis/dataApi"; import taskbarSliceReducer from "../taskbarSlice"; import databaseSliceReducer from "../local_storage/rxdbSlice"; import cacheSliceReducer from "../../apis/cacheSlice"; import infoSliceReducer from "../../features/info/infoSlice"; import notificationSliceReducer from "../../features/info/notification_bar/notificationSlice"; import autoswitchSliceReducer from "../../features/info/indicators_bar/autoswitch/autoswitchSlice"; import helpdeskOverlaySliceReducer from "../../features/support/overlay_page/helpdeskOverlaySlice"; import helpdeskHistorySliceReducer from "../../features/support/support_page/history/helpdeskHistorySlice"; import informingSliceReducer from "../../features/informing/informingSlice"; import toggleButtonSliceReducer from "../components/toggle_button/toggleButtonSlice"; //! Components always should get state from database reducer because of caching mechanism const store = configureStore({ reducer: { taskbar: taskbarSliceReducer, cache: cacheSliceReducer, workplaceCreate: workplaceCreateSliceReducer, database: databaseSliceReducer, [taskbarApi.reducerPath]: taskbarApi.reducer, [dataApi.reducerPath]: dataApi.reducer, programs: programsSliceReducer, info: infoSliceReducer, notification: notificationSliceReducer, autoswitch: autoswitchSliceReducer, helpdeskOverlay: helpdeskOverlaySliceReducer, helpdeskHistory: helpdeskHistorySliceReducer, informing: informingSliceReducer, togglebutton: toggleButtonSliceReducer, }, middleware: (defaultMiddleware) => defaultMiddleware().concat(taskbarApi.middleware, dataApi.middleware), devTools: process.env.NODE_ENV === "development", enhancers: [], }); setupListeners(store.dispatch); export const { dispatch } = store.dispatch; export default store;