configureStore

Building on createStore(), configureStore():

...no more applyMiddleware() and compose()!
The default middleware is not included if you explicitly state a value for the 'middleware' key. Assign a callback accepting a defaultMiddleware argument if you want to add to the default middleware.
...no more combineReducers()!
If you want to nest reducers to more than one levels, you'll still need to call combineReducers().

enhancers: [offline] will result in a final setup of [applyMiddleware, offline, devToolsExtension].

enhancers: (defaultEnhancers) => [offline, ...defaultEnhancers] will result in a final setup of [offline, applyMiddleware, devToolsExtension].