X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/9525ed95bef2a8de63b48a0682c342465d29bae9..f3cedd050e0713ae690af1acf1e73535fc136dd6:/src/store/store.ts diff --git a/src/store/store.ts b/src/store/store.ts index a6e0cbbe85..f236d02948 100644 --- a/src/store/store.ts +++ b/src/store/store.ts @@ -70,6 +70,8 @@ import { SubprocessMiddlewareService } from '~/store/subprocess-panel/subprocess import { SUBPROCESS_PANEL_ID } from '~/store/subprocess-panel/subprocess-panel-actions'; import { ALL_PROCESSES_PANEL_ID } from './all-processes-panel/all-processes-panel-action'; import { Config } from '~/common/config'; +import { pluginConfig } from '~/plugins'; +import { MiddlewareListReducer } from '~/common/plugintypes'; const composeEnhancers = (process.env.NODE_ENV === 'development' && @@ -136,13 +138,13 @@ export function configureStore(history: History, services: ServiceRepository, co const state = store.getState(); if (state.auth && state.auth.apiToken) { - handleRedirects(config); + handleRedirects(state.auth.apiToken, config); } return next(action); }; - const middlewares: Middleware[] = [ + let middlewares: Middleware[] = [ routerMiddleware(history), thunkMiddleware.withExtraArgument(services), authMiddleware(services), @@ -163,6 +165,12 @@ export function configureStore(history: History, services: ServiceRepository, co collectionsContentAddress, subprocessMiddleware, ]; + + const reduceMiddlewaresFn: (a: Middleware[], + b: MiddlewareListReducer) => Middleware[] = (a, b) => b(a, services); + + middlewares = pluginConfig.middlewares.reduce(reduceMiddlewaresFn, middlewares); + const enhancer = composeEnhancers(applyMiddleware(redirectToMiddleware, ...middlewares)); return createStore(rootReducer, enhancer); }