import axios from 'axios'; export const SET_BROWSER_SUPPORT = 'PUSH_NOTIFICATIONS_SET_BROWSER_SUPPORT'; export const SET_SUBSCRIPTION = 'PUSH_NOTIFICATIONS_SET_SUBSCRIPTION'; export const CLEAR_SUBSCRIPTION = 'PUSH_NOTIFICATIONS_CLEAR_SUBSCRIPTION'; export const ALERTS_CHANGE = 'PUSH_NOTIFICATIONS_ALERTS_CHANGE'; export function setBrowserSupport (value) { return { type: SET_BROWSER_SUPPORT, value, }; } export function setSubscription (subscription) { return { type: SET_SUBSCRIPTION, subscription, }; } export function clearSubscription () { return { type: CLEAR_SUBSCRIPTION, }; } export function changeAlerts(key, value) { return dispatch => { dispatch({ type: ALERTS_CHANGE, key, value, }); dispatch(saveSettings()); }; } export function saveSettings() { return (_, getState) => { const state = getState().get('push_notifications'); const subscription = state.get('subscription'); const alerts = state.get('alerts'); axios.put(`/api/web/push_subscriptions/${subscription.get('id')}`, { data: { alerts, }, }); }; }