Files
Iris/src/js/services/pusher/reducer.js
James Barnsley e4d53a2d35 Auto eslint fix
2019-09-05 15:36:11 +12:00

73 lines
2.1 KiB
JavaScript
Executable File

export default function reducer(pusher = {}, action) {
switch (action.type) {
case 'PUSHER_CONNECT':
case 'PUSHER_CONNECTING':
return { ...pusher, connected: false, connecting: true };
case 'PUSHER_CONNECTED':
return {
...pusher,
connected: true,
connecting: false,
connection_id: action.connection_id,
client_id: action.client_id,
username: action.username,
};
case 'PUSHER_DISCONNECTED':
return { ...pusher, connected: false, connecting: false };
case 'PUSHER_SET_PORT':
return { ...pusher, port: action.port };
case 'PUSHER_SET_USERNAME':
return { ...pusher, username: action.username };
case 'PUSHER_CONNECTIONS':
var connections = {};
for (let i = 0; i < action.connections.length; i++) {
connections[action.connections[i].connection_id] = action.connections[i];
}
return { ...pusher, connections };
case 'PUSHER_CONNECTION_ADDED':
case 'PUSHER_CONNECTION_CHANGED':
var connections = { ...pusher.connections };
connections[action.connection.connection_id] = action.connection;
return { ...pusher, connections };
case 'PUSHER_CONNECTION_UPDATED':
return {
...pusher,
username: action.connection.username,
client_id: action.connection.client_id,
connection_id: action.connection.connection_id,
};
case 'PUSHER_CONNECTION_REMOVED':
var connections = { ...pusher.connections };
delete connections[action.connection.connection_id];
return { ...pusher, connections };
case 'PUSHER_VERSION':
return {
...pusher,
version: action.version,
upgrading: false,
};
case 'PUSHER_START_UPGRADE':
return { ...pusher, upgrading: true };
case 'PUSHER_CONFIG':
return { ...pusher, config: action.config };
case 'PUSHER_COMMANDS_UPDATED':
return { ...pusher, commands: action.commands };
default:
return pusher;
}
}