Files
Iris/src/js/services/pusher/reducer.js

56 lines
1.8 KiB
JavaScript
Raw Normal View History

2016-10-27 16:58:11 +13:00
export default function reducer(pusher = {}, action){
switch (action.type) {
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':
2016-10-28 15:58:07 +13:00
return Object.assign({}, pusher, {
connected: true,
connecting: false,
2017-02-18 22:04:05 +13:00
connection_id: action.connection.connection_id,
2016-10-28 15:58:07 +13:00
username: action.connection.username
});
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
case 'PUSHER_USERNAME':
2017-02-18 22:04:05 +13:00
return Object.assign({}, pusher, { username: action.username });
2017-01-09 16:42:53 +13:00
case 'CONNECTIONS':
2017-02-18 22:04:05 +13:00
return Object.assign({}, pusher, { connections: action.connections });
2016-10-28 15:58:07 +13:00
2017-01-09 16:42:53 +13:00
case 'CONNECTION_UPDATED':
2016-10-28 10:48:55 +13:00
function byID(connection){
2017-02-18 22:04:05 +13:00
return connection.connection_id == action.connection.connection_id;
2016-10-28 10:48:55 +13:00
}
var connection = pusher.connections.find(byID);
var index = pusher.connections.indexOf(connection);
var connections = Object.assign([], pusher.connections);
2017-02-18 22:04:05 +13:00
connections[index] = action.connection;
2016-10-28 10:48:55 +13:00
return Object.assign({}, pusher, { connections: connections });
2016-10-27 21:20:05 +13:00
2017-01-09 16:42:53 +13:00
case 'VERSION':
return Object.assign({}, pusher, {
2017-02-18 22:04:05 +13:00
version: action.version,
upgrading: false
});
2017-01-10 14:12:54 +13:00
case 'START_UPGRADE':
return Object.assign({}, pusher, { upgrading: true });
2016-10-27 16:58:11 +13:00
default:
return pusher
}
}