configureStore.ts 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import { createStore, applyMiddleware, compose, combineReducers } from 'redux';
  2. import thunk from 'redux-thunk';
  3. import { createLogger } from 'redux-logger';
  4. import sharedReducers from 'app/core/reducers';
  5. import alertingReducers from 'app/features/alerting/state/reducers';
  6. import teamsReducers from 'app/features/teams/state/reducers';
  7. import apiKeysReducers from 'app/features/api-keys/state/reducers';
  8. import foldersReducers from 'app/features/folders/state/reducers';
  9. import dashboardReducers from 'app/features/dashboard/state/reducers';
  10. import pluginReducers from 'app/features/plugins/state/reducers';
  11. import dataSourcesReducers from 'app/features/datasources/state/reducers';
  12. import usersReducers from 'app/features/users/state/reducers';
  13. const rootReducer = combineReducers({
  14. ...sharedReducers,
  15. ...alertingReducers,
  16. ...teamsReducers,
  17. ...apiKeysReducers,
  18. ...foldersReducers,
  19. ...dashboardReducers,
  20. ...pluginReducers,
  21. ...dataSourcesReducers,
  22. ...usersReducers,
  23. });
  24. export let store;
  25. export function configureStore() {
  26. const composeEnhancers = (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
  27. if (process.env.NODE_ENV !== 'production') {
  28. // DEV builds we had the logger middleware
  29. store = createStore(rootReducer, {}, composeEnhancers(applyMiddleware(thunk, createLogger())));
  30. } else {
  31. store = createStore(rootReducer, {}, composeEnhancers(applyMiddleware(thunk)));
  32. }
  33. }