app/store.js

/**
 * @file
 * File : store.js\
 * Store used by redux as a state management provider\
 * Defines the store
 *
 * @author  Pierre-Yves Léglise <contact@axialdata.net>
 * @name store
 */

import { configureStore } from '@reduxjs/toolkit'
import { apiSlice } from './apiHandler/apiSlice'
import authSlice from '../features/auth/authSlice'
import appSlice from './appSlice'
import appSettingsSlice from './config/appSettingsSlice'
import ordersSlice from '../features/OrdersGroupsList/ordersSlice'
// import config from '../app/config'
import frontend from '../app/config/frontend'
let env = import.meta.env
let frontendData = frontend(env)
const isDeveloppement = frontendData.mode === 'developpement'
// import userSlice from '../features/profile/userSlice'

/**
 * Store used by redux as a state management provider.
 *
 * @typedef {Object} Store
 * @author  Pierre-Yves Léglise <contact@axialdata.net>
 * @property {Object} reducer - Reducer.
 * @property {Object} middleware - Middleware.
 * @property {Object} devTools - DevTools.
 * @example
 *  const store = store
 * @returns {Object} Store.
 */
export const store = configureStore({
  reducer: {
    [apiSlice.reducerPath]: apiSlice.reducer,
    auth: authSlice,
    app: appSlice,
    appSettings: appSettingsSlice,
    orders: ordersSlice,
    // user: userSlice,
  },
  middleware: (getDefaultMiddleware) =>
    getDefaultMiddleware().concat(apiSlice.middleware),
  devTools: isDeveloppement,
})
export default store