dustin-H/bauhaus-ui

View on GitHub
src/reducers/config.js

Summary

Maintainability
B
5 hrs
Test Coverage
import * as types from '../constants/ActionTypes.js'
import * as pageTypes from '../constants/PageTypes.js'

function parseSecond(val) {
  var result = false
  var tmp = []
  var items = location.search.substr(1).split("&")
  for (var index = 0; index < items.length; index++) {
    tmp = items[index].split("=")
    if (tmp[0] === val)
      result = decodeURIComponent(tmp[1])
  }
  return result
}


var val = parseSecond('singlePageView')
var singlePageView = val === 'true' || val === '1' || val === true

const initialState = {
  page: 'LOADING',
  loaded: false,
  loadState: {
    entry: false,
    sideBar: false,
    views: false
  },
  config: ['config.json'],
  singlePageView: singlePageView,
  endpoints: {
  },
  customizations: {
    appName: 'BAUHAUS UI',
    title: 'BAUHAUS UI',
    logo: 'media/logo.svg'
  }
}

export default function config(state = initialState, action) {
  switch (action.type) {
    case types.CONFIG_SET_PAGE:
      if (pageTypes[action.page] != null) {
        var newState = Object.assign({}, state)
        newState.page = action.page
        return newState
      } else {
        return state
      }
    case types.CONFIG_REMOVE_FIRST_URL:
      var newState = Object.assign({}, state)
      newState.config.shift()
      return newState
    case types.CONFIG_LOADED:
      var newState = Object.assign({}, state)
      newState.loaded = true
      //newState.page = pageTypes.LOGIN
      return newState
    case types.CONFIG_FATAL_ERROR:
      var newState = Object.assign({}, state)
      console.error('Fatal Error:', action.err)
      newState.page = pageTypes.ERROR
      return newState
    case types.CONFIG_LOAD_ERROR:
      var newState = Object.assign({}, state)
      newState.page = pageTypes.ERROR
      return newState
    case types.CONFIG_ADD_URLS:
      var newState = Object.assign({}, state)
      newState.config = newState.config.concat(action.configUrls)
      return newState
    case types.CONFIG_SET_ENDPOINTS:
      var newState = Object.assign({}, state, {})
      for (var i in action.endpoints) {
        newState.endpoints[i] = action.endpoints[i]
      }
      return newState
    case types.CONFIG_SET_CUSTOMIZATIONS:
      var newState = Object.assign({}, state)
      newState.customizations = Object.assign({}, newState.customizations, action.customizations)
      return newState
    default:
      return state
  }
}