finish drag and drop system

This commit is contained in:
Katalina / stardust 2017-12-27 13:16:26 -06:00
parent e36be9e381
commit 7806219464
19 changed files with 465 additions and 90 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 roleEditor from './role-editor'
import { routerMiddleware } from 'react-router-redux'
// import roles from './roles'
@ -15,6 +16,7 @@ const appState = (state = initialState, { type, data }) => {
switch (type) {
case Symbol.for('app ready'):
return {
...state,
ready: true,
fade: false
}
@ -36,7 +38,8 @@ const rootReducer = combineReducers({
user,
router: routerMiddleware,
// roles,
rolePicker
rolePicker,
roleEditor
})
export default rootReducer

View file

@ -0,0 +1,43 @@
import { Map, OrderedMap, fromJS } from 'immutable'
const initialState = Map({
viewMap: OrderedMap({})
})
const reducer = (state = initialState, { type, data }) => {
switch (type) {
case Symbol.for('re: setup'):
const { viewMap, ...rest } = data
return Map({ viewMap: OrderedMap(viewMap), ...rest })
case Symbol.for('re: set category'):
return state.setIn(['viewMap', data.name], Map(data))
case Symbol.for('re: delete category'):
return state.deleteIn(['viewMap', data])
case Symbol.for('re: switch category mode'):
return state.setIn(['viewMap', data.name, 'mode'], data.mode)
case Symbol.for('re: add role to category'):
const category = state.getIn(['viewMap', data.name])
return state.setIn(['viewMap', data.name],
category
.set('roles', category.get('roles').add(data.role.get('id')))
.set('roles_map', category.get('roles_map').add(data.role))
)
case Symbol.for('re: remove role from category'):
const rmCat = state.getIn(['viewMap', data.name])
return state.setIn(['viewMap', data.name],
rmCat
.set('roles', rmCat.get('roles').filterNot(r => r === data.role.get('id')))
.set('roles_map', rmCat.get('roles_map').filterNot(r => r.get('id') === data.role.get('id')))
)
default:
return state
}
}
export default reducer