diff options
Diffstat (limited to 'packages/gitbook-core/src/reducers/navigation.js')
-rw-r--r-- | packages/gitbook-core/src/reducers/navigation.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/packages/gitbook-core/src/reducers/navigation.js b/packages/gitbook-core/src/reducers/navigation.js new file mode 100644 index 0000000..a895186 --- /dev/null +++ b/packages/gitbook-core/src/reducers/navigation.js @@ -0,0 +1,35 @@ +const { Record } = require('immutable'); +const ACTION_TYPES = require('../actions/TYPES'); + +const NavigationState = Record({ + loading: false, + error: null +}); + +function reduceNavigation(state, action) { + state = state || NavigationState(); + switch (action.type) { + + case ACTION_TYPES.PAGE_FETCH_START: + return state.merge({ + loading: true + }); + + case ACTION_TYPES.PAGE_FETCH_END: + return state.merge({ + loading: false + }); + + case ACTION_TYPES.PAGE_FETCH_ERROR: + return state.merge({ + loading: false, + error: action.error + }); + + default: + return state; + + } +} + +module.exports = reduceNavigation; |