diff --git a/src/js/Notifications.js b/src/js/Notifications.js index f9e7df7f..f2f0fd4c 100644 --- a/src/js/Notifications.js +++ b/src/js/Notifications.js @@ -128,10 +128,6 @@ async function subscribeToWebPush() { sub ? addWebPushSubscription(sub) : subscribe(reg); } -async function unsubscribeWebPush() { - -} - const addWebPushSubscriptionsToChats = _.debounce(() => { const arr = Object.values(webPushSubscriptions); Object.values(chats).forEach(chat => { @@ -200,4 +196,4 @@ function init() { $('#enable-notifications-prompt').click(enableDesktopNotifications); } -export default {init, notifyMsg, changeChatUnseenCount, webPushSubscriptions, subscribeToWebPush, getWebPushSubscriptions}; +export default {init, notifyMsg, changeChatUnseenCount, webPushSubscriptions, subscribeToWebPush, getWebPushSubscriptions, removeSubscription}; diff --git a/src/js/Session.js b/src/js/Session.js index 2649e322..cd53cdc1 100644 --- a/src/js/Session.js +++ b/src/js/Session.js @@ -223,8 +223,12 @@ function init() { const reg = await navigator.serviceWorker.getRegistration(); if (reg) { reg.active.postMessage({key: null}); + const sub = await reg.pushManager.getSubscription(); + const hash = await iris.util.getHash(JSON.stringify(sub)); + Notifications.removeSubscription(hash); + sub.unsubscribe && sub.unsubscribe(); } - location.reload(); // ensure that everything is reset (especially on the gun side). TODO: without reload + _.defer(() => location.reload()); }); $('#show-existing-account-login').click(showSwitchAccount); $('#show-create-account').click(showCreateAccount);