receptor/src/reducers/subscribe.js

21 lines
602 B
JavaScript
Raw Normal View History

import { SUBSCRIBE, UNSUBSCRIBE } from '../actions/subscribe';
import { RESOURCES_REMOVED } from '../actions/resources';
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 = new Set(action.ids);
return state.filter(sub => !ids.has(sub.id));
}
2017-09-08 10:27:00 +02:00
case RESOURCES_REMOVED: {
const ids = new Set(action.ids);
return state.filter(sub => !ids.has(sub.id));
2017-09-08 10:27:00 +02:00
}
}
return state;
}