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:
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):
self.expired_subs[user] = []

View File

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