finish redux feature parity

This commit is contained in:
41666 2017-12-16 17:39:53 -06:00
parent f5220aa6dc
commit 5510d5a1c4
29 changed files with 220 additions and 100 deletions

View file

@ -3,6 +3,7 @@ import { combineReducers } from 'redux'
import servers from './servers'
import user from './user'
import rolePicker from './role-picker'
import { routerMiddleware } from 'react-router-redux';
// import roles from './roles'
const initialState = {
@ -25,6 +26,7 @@ const rootReducer = combineReducers({
appState,
servers,
user,
router: routerMiddleware,
// roles,
rolePicker
})

View file

@ -1,9 +1,9 @@
import { Map, Set } from 'immutable'
import { Map, OrderedMap } from 'immutable'
const initialState = Map({
hidden: true, // should the view be hidden?
emptyRoles: true, // helps derender roles so there's no visible element state change
viewMap: Set([]), // roles in categories
viewMap: OrderedMap({}), // roles in categories
originalRolesSelected: Map({}), // Map<role id, bool> -- original roles for diffing against selected
rolesSelected: Map({}) // Map<role id, bool> -- new roles for diffing
})
@ -11,8 +11,8 @@ const initialState = Map({
export default (state = initialState, { type, data }) => {
switch (type) {
case Symbol.for('setup role picker'):
return state.merge(data)
return state.mergeDeep(data)
case Symbol.for('hide role picker ui'):
return {
...state,
@ -24,12 +24,12 @@ export default (state = initialState, { type, data }) => {
...state,
emptyRoles: data
}
case Symbol.for('zero role picker'):
return initialState
case Symbol.for('update selected roles'):
return state.set('rolesSelected', state.get('rolesSelected').set(data.id, data.state))
return state.setIn(['rolesSelected', data.id], data.state)
case Symbol.for('zero role picker'):
return initialState
default:
return state