dustin-H/bauhaus-ui

View on GitHub
src/reducers/router.js

Summary

Maintainability
A
2 hrs
Test Coverage
import * as types from '../constants/ActionTypes.js'

const initialState = {
  location: {},
  routes: {},
  route: false,
  loading: false,
  error: false,
  contentState: {}
}

export default function router(state = initialState, action) {
  switch (action.type) {
    case types.ROUTER_LOCATION_CHANGED:
      var newState = Object.assign({}, state)
      newState.location = action.location
      newState.route = action.route
      newState.error = false
      newState.contentState = {}
      return newState
    case types.ROUTER_SET_ROUTES:
      var newState = Object.assign({}, state)
      newState.routes = action.routes
      newState.route = action.route
      newState.loading = false
      newState.error = false
      return newState
    case types.ROUTER_SET_LOADING:
      var newState = Object.assign({}, state)
      newState.loading = true
      newState.error = false
      return newState
    case types.ROUTER_SHOW_ERROR:
      var newState = Object.assign({}, state)
      console.error(action.err)
      newState.error = true
      newState.loading = false
      return newState
    case types.ROUTER_SET_CONTENT_STATE:
      var newState = Object.assign({}, state)
      newState.contentState[action.key] = Object.assign({}, action.state)
      return newState
    default:
      return state
  }
}