receptor/src/reducers/torrents.js

25 lines
607 B
JavaScript
Raw Normal View History

2017-08-24 14:30:22 +02:00
import {
UPDATE_RESOURCES,
RESOURCES_REMOVED
} from '../actions/resources';
2017-08-20 17:57:57 +02:00
export default function torrents(state = {}, action) {
switch (action.type) {
case UPDATE_RESOURCES:
return {
...state,
...action.resources
.filter(r => r.type === "torrent")
2017-08-23 14:27:08 +02:00
.reduce((s, r) => ({
...s,
2017-08-23 14:42:00 +02:00
[r.id]: { ...state[r.id], ...r }
2017-08-23 14:27:08 +02:00
}), {})
};
2017-08-24 14:30:22 +02:00
case RESOURCES_REMOVED:
return Object.values(state)
.filter(r => action.ids.indexOf(r.id) === -1)
.reduce((s, r) => ({ ...s, [r.id]: r }), {});
2017-08-20 17:57:57 +02:00
}
return state;
}