From 3d85bb2106dc1865875ff224803c0fdedf723a09 Mon Sep 17 00:00:00 2001 From: Jerko Steiner Date: Wed, 3 Apr 2019 23:45:19 +0800 Subject: [PATCH] Use console.group in ReduxLogger, enable via localStorage --- packages/client/src/middleware/ReduxLogger.ts | 11 +++++++++-- packages/client/src/store/createStore.ts | 4 +++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/client/src/middleware/ReduxLogger.ts b/packages/client/src/middleware/ReduxLogger.ts index b360364..59669aa 100644 --- a/packages/client/src/middleware/ReduxLogger.ts +++ b/packages/client/src/middleware/ReduxLogger.ts @@ -2,7 +2,11 @@ import {AnyAction, Middleware} from 'redux' import {diff} from 'deep-object-diff' export class ReduxLogger { + constructor(readonly enabled: boolean) {} handle: Middleware = store => next => (action: AnyAction) => { + if (!this.enabled) { + return next(action) + } const prevState = store.getState() const result = next(action) const nextState = store.getState() @@ -17,14 +21,17 @@ export class ReduxLogger { const stateDiff = diff(prevState, nextState) // tslint:disable-next-line + console.group(type) + // tslint:disable-next-line console.log( - '%s\n action: %O\n stateDiff: %O\n prevState: %O\n nextState: %O', - type, + 'action: %O\nstateDiff: %O\nprevState: %O\nnextState: %O', action, stateDiff, prevState, nextState, ) + // tslint:disable-next-line + console.groupEnd() return result } } diff --git a/packages/client/src/store/createStore.ts b/packages/client/src/store/createStore.ts index 9b5e68e..38f3b82 100644 --- a/packages/client/src/store/createStore.ts +++ b/packages/client/src/store/createStore.ts @@ -21,7 +21,9 @@ export function createStore( params: ICreateStoreParams, ) { const middleware = params.middleware || [ - new ReduxLogger().handle, + new ReduxLogger( + window && window.localStorage && window.localStorage.log, + ).handle, new PromiseMiddleware().handle, ] return (state?: DeepPartial) => create(