2017-08-22 00:10:52 +02:00
|
|
|
import { SUBSCRIBE, UNSUBSCRIBE } from '../actions/subscribe';
|
2017-08-26 16:04:28 +02:00
|
|
|
import { RESOURCES_REMOVED } from '../actions/resources';
|
2017-08-22 00:10:52 +02:00
|
|
|
|
|
|
|
export default function subscribe(state = [], action) {
|
|
|
|
switch (action.type) {
|
|
|
|
case SUBSCRIBE: {
|
|
|
|
const { ids, serial } = action;
|
|
|
|
return [ ...state, ...ids.map(id => ({ serial, id })) ];
|
|
|
|
}
|
|
|
|
case UNSUBSCRIBE: {
|
|
|
|
const { ids } = action;
|
|
|
|
return state.filter(sub => ids.indexOf(sub.id) === -1);
|
|
|
|
}
|
2017-09-08 10:27:00 +02:00
|
|
|
case RESOURCES_REMOVED: {
|
|
|
|
const { ids } = action;
|
2017-08-26 16:04:28 +02:00
|
|
|
return state.filter(sub => ids.indexOf(sub.id) === -1);
|
2017-09-08 10:27:00 +02:00
|
|
|
}
|
2017-08-22 00:10:52 +02:00
|
|
|
}
|
|
|
|
return state;
|
|
|
|
}
|