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

41 lines
1.4 KiB
JavaScript
Raw Normal View History

2016-10-27 16:58:11 +13:00
export default function reducer(pusher = {}, action){
switch (action.type) {
case 'PUSHER_CONNECTED':
return Object.assign({}, pusher, { connected: true, connecting: false, connectionid: action.connection.connectionid });
2016-10-27 16:58:11 +13:00
case 'PUSHER_DISCONNECTED':
return Object.assign({}, pusher, { connected: false, connecting: false });
case 'PUSHER_SET_CONFIG':
return Object.assign({}, pusher, {
username: action.username,
port: action.port
});
2016-10-27 21:20:05 +13:00
2016-10-28 10:48:55 +13:00
case 'PUSHER_CONNECTION_UPDATED':
function byID(connection){
return connection.connectionid == action.data.connections.connectionid;
}
var connection = pusher.connections.find(byID);
var index = pusher.connections.indexOf(connection);
var connections = Object.assign([], pusher.connections);
connections[index] = action.data.connections;
return Object.assign({}, pusher, { connections: connections });
2016-10-27 21:20:05 +13:00
case 'PUSHER_CONNECTIONS':
return Object.assign({}, pusher, { connections: action.data.connections });
2016-10-27 21:20:05 +13:00
case 'PUSHER_VERSION':
return Object.assign({}, pusher, { version: action.data });
2016-10-27 16:58:11 +13:00
default:
return pusher
}
}