import { SET_BROWSER_SUPPORT, SET_SUBSCRIPTION, CLEAR_SUBSCRIPTION, SET_ALERTS } from '../actions/push_notifications'; import Immutable from 'immutable'; const initialState = Immutable.Map({ subscription: null, alerts: new Immutable.Map({ follow: false, follow_request: false, favourite: false, reblog: false, mention: false, poll: false, }), isSubscribed: false, browserSupport: false, }); export default function push_subscriptions(state = initialState, action) { switch(action.type) { case SET_SUBSCRIPTION: return state .set('subscription', new Immutable.Map({ id: action.subscription.id, endpoint: action.subscription.endpoint, })) .set('alerts', new Immutable.Map(action.subscription.alerts)) .set('isSubscribed', true); case SET_BROWSER_SUPPORT: return state.set('browserSupport', action.value); case CLEAR_SUBSCRIPTION: return initialState; case SET_ALERTS: return state.setIn(action.path, action.value); default: return state; } };