v1/UI/src/reducers/servers.js
2019-11-19 23:06:33 -05:00

48 lines
1.1 KiB
JavaScript

import { Set, OrderedMap, Map, fromJS } from 'immutable'
const blankServer = Map({
id: '386659935687147521',
gm: {
nickname: null,
color: '#cca1a1',
},
message: 'Hey hey!',
server: {
id: '386659935687147521',
name: 'Roleypoly',
ownerID: '62601275618889728',
icon: '4fa0c1063649a739f3fe1a0589aa2c03',
},
roles: Set([]),
categories: OrderedMap(),
perms: {
isAdmin: true,
canManageRoles: true,
},
})
const initialState = OrderedMap({})
export default (state = initialState, { type, data }) => {
switch (type) {
case Symbol.for('update servers'):
return data.reduce((acc, s) => acc.set(s.id, fromJS(s)), OrderedMap())
// case Symbol.for('update server roles'):
// return state.set(data.id,
// state.get(data.id).set('roles', Set(data.roles))
// )
case Symbol.for('server: set'):
return state.set(data.id, fromJS(data))
case Symbol.for('server: edit message'):
return state.setIn([data.id, 'message'], data.message)
case Symbol.for('add debug server'):
return state.set('0', blankServer)
default:
return state
}
}