mirror of
https://github.com/roleypoly/roleypoly-v1.git
synced 2025-04-24 19:59:12 +00:00
48 lines
1.1 KiB
JavaScript
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
|
|
}
|
|
}
|