2016-10-27 16:58:11 +13:00
|
|
|
|
|
|
|
|
export default function reducer(pusher = {}, action){
|
2017-10-10 13:05:28 +13:00
|
|
|
switch (action.type){
|
2016-10-27 16:58:11 +13:00
|
|
|
|
2016-11-06 15:47:37 +13:00
|
|
|
case 'PUSHER_CONNECT':
|
|
|
|
|
case 'PUSHER_CONNECTING':
|
|
|
|
|
return Object.assign({}, pusher, { connected: false, connecting: true });
|
|
|
|
|
|
2016-10-27 16:58:11 +13:00
|
|
|
case 'PUSHER_CONNECTED':
|
2017-02-18 22:25:26 +13:00
|
|
|
return Object.assign({}, pusher, {
|
2017-02-19 21:27:43 +13:00
|
|
|
connected: true,
|
2017-02-21 08:35:24 +13:00
|
|
|
connecting: false,
|
2017-02-19 21:27:43 +13:00
|
|
|
connection_id: action.connection_id,
|
2017-11-19 20:38:36 +13:00
|
|
|
client_id: action.client_id,
|
2017-02-19 21:27:43 +13:00
|
|
|
username: action.username
|
2016-10-28 15:58:07 +13:00
|
|
|
});
|
2016-10-27 16:58:11 +13:00
|
|
|
|
|
|
|
|
case 'PUSHER_DISCONNECTED':
|
|
|
|
|
return Object.assign({}, pusher, { connected: false, connecting: false });
|
|
|
|
|
|
2016-10-31 09:25:15 +13:00
|
|
|
case 'PUSHER_SET_PORT':
|
|
|
|
|
return Object.assign({}, pusher, { port: action.port });
|
2016-10-27 21:20:05 +13:00
|
|
|
|
2017-02-19 21:27:43 +13:00
|
|
|
case 'PUSHER_USERNAME_CHANGED':
|
2017-02-18 22:04:05 +13:00
|
|
|
return Object.assign({}, pusher, { username: action.username });
|
2017-01-09 09:29:56 +13:00
|
|
|
|
2017-02-19 21:27:43 +13:00
|
|
|
case 'PUSHER_CONNECTIONS':
|
|
|
|
|
var connections = {}
|
|
|
|
|
for (var i = 0; i < action.connections.length; i++){
|
|
|
|
|
connections[action.connections[i].connection_id] = action.connections[i]
|
2016-10-28 10:48:55 +13:00
|
|
|
}
|
2017-02-19 21:27:43 +13:00
|
|
|
return Object.assign({}, pusher, { connections: connections });
|
|
|
|
|
|
|
|
|
|
case 'PUSHER_CONNECTION_ADDED':
|
2018-03-13 08:57:40 +13:00
|
|
|
case 'PUSHER_CONNECTION_CHANGED':
|
2017-02-19 21:27:43 +13:00
|
|
|
var connections = Object.assign({}, pusher.connections)
|
2018-03-13 08:57:40 +13:00
|
|
|
connections[action.connection.connection_id] = action.connection;
|
2017-02-19 21:27:43 +13:00
|
|
|
return Object.assign({}, pusher, { connections: connections });
|
2016-10-28 10:48:55 +13:00
|
|
|
|
2017-02-19 21:27:43 +13:00
|
|
|
case 'PUSHER_CONNECTION_REMOVED':
|
|
|
|
|
var connections = Object.assign({}, pusher.connections)
|
|
|
|
|
delete connections[action.connection.connection_id]
|
2016-10-28 10:48:55 +13:00
|
|
|
return Object.assign({}, pusher, { connections: connections });
|
2016-10-27 21:20:05 +13:00
|
|
|
|
2017-02-19 21:27:43 +13:00
|
|
|
case 'PUSHER_VERSION':
|
2016-10-29 22:40:02 +13:00
|
|
|
return Object.assign({}, pusher, {
|
2017-02-18 22:04:05 +13:00
|
|
|
version: action.version,
|
2016-10-29 22:40:02 +13:00
|
|
|
upgrading: false
|
|
|
|
|
});
|
|
|
|
|
|
2017-02-19 21:27:43 +13:00
|
|
|
case 'PUSHER_START_UPGRADE':
|
2016-10-29 22:40:02 +13:00
|
|
|
return Object.assign({}, pusher, { upgrading: true });
|
2016-10-27 16:58:11 +13:00
|
|
|
|
2018-03-26 10:36:13 +13:00
|
|
|
case 'PUSHER_CONFIG':
|
|
|
|
|
return Object.assign({}, pusher, { config: action.config });
|
|
|
|
|
|
2018-03-12 21:39:27 +13:00
|
|
|
case 'PUSHER_SNAPCAST':
|
2018-04-29 21:10:57 +12:00
|
|
|
return Object.assign({}, pusher, {
|
|
|
|
|
snapcast_streams: action.snapcast_streams,
|
|
|
|
|
snapcast_groups: action.snapcast_groups,
|
|
|
|
|
snapcast_clients: action.snapcast_clients
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
case 'PUSHER_SNAPCAST_GROUP_UPDATED':
|
|
|
|
|
var snapcast_groups = Object.assign({}, pusher.snapcast_groups);
|
|
|
|
|
var group = snapcast_groups[action.key];
|
|
|
|
|
snapcast_groups[action.key] = Object.assign({}, group, action.group);
|
|
|
|
|
return Object.assign({}, pusher, { snapcast_groups: snapcast_groups });
|
2018-03-21 22:08:53 +13:00
|
|
|
|
|
|
|
|
case 'PUSHER_SNAPCAST_CLIENT_UPDATED':
|
|
|
|
|
var snapcast_clients = Object.assign({}, pusher.snapcast_clients);
|
2018-03-23 16:54:56 +13:00
|
|
|
var client = snapcast_clients[action.key];
|
|
|
|
|
client.config = Object.assign({}, client.config, action.client.config);
|
|
|
|
|
snapcast_clients[action.key] = client;
|
2018-03-21 22:08:53 +13:00
|
|
|
return Object.assign({}, pusher, { snapcast_clients: snapcast_clients });
|
2018-03-12 21:39:27 +13:00
|
|
|
|
2018-03-23 22:06:12 +13:00
|
|
|
case 'PUSHER_SNAPCAST_CLIENT_REMOVED':
|
|
|
|
|
var snapcast_clients = Object.assign({}, pusher.snapcast_clients);
|
|
|
|
|
delete snapcast_clients[action.key];
|
|
|
|
|
return Object.assign({}, pusher, { snapcast_clients: snapcast_clients });
|
|
|
|
|
|
2016-10-27 16:58:11 +13:00
|
|
|
default:
|
|
|
|
|
return pusher
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|