/**
* @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