39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
import {
|
|
applyMiddleware,
|
|
combineReducers,
|
|
createStore,
|
|
compose,
|
|
} from 'redux/es/redux.js';
|
|
|
|
// import { createLogger } from 'redux-logger';
|
|
import layoutReducers from './layout/reducers.js';
|
|
import { reducer as oidcReducer } from 'redux-oidc';
|
|
import { redux } from '@ohif/core';
|
|
import thunkMiddleware from 'redux-thunk';
|
|
|
|
// Combine our @ohif/core, ui, and oidc reducers
|
|
// Set init data, using values found in localStorage
|
|
const { reducers, localStorage } = redux;
|
|
const middleware = [thunkMiddleware];
|
|
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
|
|
|
|
reducers.ui = layoutReducers;
|
|
reducers.oidc = oidcReducer;
|
|
|
|
const rootReducer = combineReducers(reducers);
|
|
const store = createStore(
|
|
rootReducer,
|
|
localStorage.loadState(), // preloadedState
|
|
composeEnhancers(applyMiddleware(...middleware))
|
|
);
|
|
|
|
// When the store's preferences change,
|
|
// Update our cached preferences in localStorage
|
|
store.subscribe(() => {
|
|
localStorage.saveState({
|
|
preferences: store.getState().preferences,
|
|
});
|
|
});
|
|
|
|
export default store;
|