Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | /* * Copyright 2018 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { applyMiddleware, combineReducers, createStore, Store } from 'redux'; // it's possible to disable the extension in production // by importing from redux-devtools-extension/developmentOnly import { composeWithDevTools } from 'redux-devtools-extension'; import { createLogger } from 'redux-logger'; import thunk from 'redux-thunk'; import WebSocketClient from 'websocket/WebSocketClient'; import clientReducer from './client'; import demoReducer from './demo'; import routeReducer from './route'; import serverInfoReducer from './server'; import { AppState } from './types'; import connectionReducer from './websocket'; export interface StoreConfig { readonly socketUrl: string; } export function configureStore( { socketUrl }: StoreConfig, preloadedState?: AppState, ): Store<AppState> { const webSocketClient = new WebSocketClient(socketUrl); const middlewares = [thunk.withExtraArgument(webSocketClient), createLogger()]; const middlewareEnhancer = applyMiddleware(...middlewares); const enhancers = [middlewareEnhancer]; const composedEnhancers = composeWithDevTools(...enhancers); // map reducers to state slices const rootReducer = combineReducers<AppState>({ connectionStatus: connectionReducer, serverInfo: serverInfoReducer, demo: demoReducer, plan: routeReducer, userViewport: clientReducer, }); /* if (process.env.NODE_ENV !== 'production' && module.hot) { module.hot.accept('./reducers', () => store.replaceReducer(rootReducer)); } */ return createStore( rootReducer, preloadedState, composedEnhancers, ); } |