Correctly unsubscribe notifications

This commit is contained in:
Nicolas Mowen 2024-07-21 12:22:33 -06:00
parent 9824cb86ba
commit 9d8104618e
2 changed files with 13 additions and 4 deletions

View File

@ -170,7 +170,8 @@ class WebPushClient(Communicator): # type: ignore[misc]
if resp.status_code == 201: if resp.status_code == 201:
pass pass
elif resp.status_code == 410: elif resp.status_code == 404 or resp.status_code == 410:
# subscription is not found or has been unsubscribed
if not self.expired_subs.get(user): if not self.expired_subs.get(user):
self.expired_subs[user] = [] self.expired_subs[user] = []

View File

@ -290,9 +290,17 @@ export default function NotificationView({
} }
}); });
} else { } else {
registration.pushManager
.getSubscription()
.then((pushSubscription) => {
pushSubscription?.unsubscribe();
registration.unregister(); registration.unregister();
setRegistration(null); setRegistration(null);
removeMessage("notification_settings", "registration"); removeMessage(
"notification_settings",
"registration",
);
});
} }
}} }}
> >