From b99f00243496ef6a8f97bd2acd6d8916b9876691 Mon Sep 17 00:00:00 2001 From: Alex Fedoseev Date: Fri, 7 Aug 2015 17:20:36 +0300 Subject: [PATCH] Fix loggerMiddleware --- .../middleware/loggerMiddleware.js | 20 +++++++++++++------ .../assets/javascripts/stores/CommentStore.js | 6 ++---- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/client/assets/javascripts/middleware/loggerMiddleware.js b/client/assets/javascripts/middleware/loggerMiddleware.js index e78ed078..3841a2ba 100644 --- a/client/assets/javascripts/middleware/loggerMiddleware.js +++ b/client/assets/javascripts/middleware/loggerMiddleware.js @@ -1,16 +1,24 @@ -import { createStore, applyMiddleware } from 'redux'; +/* eslint no-console: 0 */ -function logger({ getState }) { - return (next) => (action) => { +export default function logger({ getState }) { + return next => action => { console.log('will dispatch', action); // Call the next dispatch method in the middleware chain. - let returnValue = next(action); + const result = next(action); - console.log('state after dispatch', getState()); + // We can't _read_ immutable objects in console out-of-the-box. + const immutableState = getState(); + const readableState = {}; + for (const storeItem in immutableState) { + if (immutableState.hasOwnProperty(storeItem)) { + readableState[storeItem] = immutableState[storeItem].toJS(); + } + } + console.log('state after dispatch', readableState); // This will likely be the action itself, unless // a middleware further in chain changed it. - return returnValue; + return result; }; } diff --git a/client/assets/javascripts/stores/CommentStore.js b/client/assets/javascripts/stores/CommentStore.js index 1c6f4bf8..05255935 100644 --- a/client/assets/javascripts/stores/CommentStore.js +++ b/client/assets/javascripts/stores/CommentStore.js @@ -1,10 +1,8 @@ import { createStore, applyMiddleware, combineReducers } from 'redux'; import thunk from 'redux-thunk'; import reducers from '../reducers'; - -// Smth wrong with this one, off for now -// import loggerMiddleware from '../middleware/loggerMiddleware'; +import loggerMiddleware from '../middleware/loggerMiddleware'; // applyMiddleware supercharges createStore with middleware: -const createStoreWithMiddleware = applyMiddleware(thunk)(createStore); +const createStoreWithMiddleware = applyMiddleware(thunk, loggerMiddleware)(createStore); export default createStoreWithMiddleware(combineReducers(reducers));