73 lines
2.1 KiB
JavaScript
Executable File
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;
|
|
}
|
|
}
|