Files
flood/client/source/scripts/reducers/clientReducer.js
2015-11-21 14:28:40 -08:00

57 lines
1.1 KiB
JavaScript

const initialState = {
torrentDetails: {},
transfers: {
updatedAt: 0,
download: {
rate: 0,
total: 0
},
upload: {
rate: 0,
total: 0
}
}
};
export default function clientReducer(state = initialState, action) {
switch (action.type) {
case 'RECEIVE_TORRENT_DETAILS':
let torrentDetails = {};
torrentDetails[action.payload.hash] = action.payload.torrentDetails;
return Object.assign(
{},
state,
{
...state,
torrentDetails
}
);
case 'CLIENT_RECEIVE_TRANSFER_DATA':
return Object.assign(
{},
state,
{
...state,
transfers: {
...state.transfers,
updatedAt: Date.now(),
download: {
rate: action.payload.downloadRate,
total: action.payload.downloadTotal
},
upload: {
rate: action.payload.uploadRate,
total: action.payload.uploadTotal
}
}
}
);
default:
return state;
}
}