40 lines
1.5 KiB
JavaScript
40 lines
1.5 KiB
JavaScript
// Copyright 2020 BMW Group
|
|
//
|
|
// 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, compose, createStore } from 'redux'
|
|
import appReducer from './reducers'
|
|
import reduxImmutableStateInvariant from 'redux-immutable-state-invariant'
|
|
import thunk from 'redux-thunk'
|
|
|
|
export default function configureStore(initialState) {
|
|
// Add support for Redux devtools
|
|
const composeEnhancers =
|
|
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose
|
|
return createStore(
|
|
appReducer,
|
|
initialState,
|
|
// Warn us if we accidentially mutate state directly in the Redux store
|
|
// (only during development).
|
|
composeEnhancers(
|
|
applyMiddleware(
|
|
thunk,
|
|
// TODO (felix): Re-enable the status.status path once we know how to
|
|
// solve the weird state mutations that are done somewhere deep within
|
|
// the logic of the status page (or its child components).
|
|
reduxImmutableStateInvariant({ ignore: ['status.status'] })
|
|
)
|
|
)
|
|
)
|
|
}
|