Call pushManager.subscribe only if enabled
parent
46798ac322
commit
2f5acee798
|
@ -55,13 +55,26 @@ class Notifier {
|
|||
|
||||
const pushManager = await this.pushManager();
|
||||
|
||||
return (
|
||||
(await pushManager.getSubscription()) ??
|
||||
pushManager.subscribe({
|
||||
const existingSubscription = await pushManager.getSubscription();
|
||||
|
||||
if (existingSubscription) {
|
||||
return existingSubscription;
|
||||
}
|
||||
|
||||
// create a new subscription only if web push is enabled
|
||||
// it is possible that web push was previously enabled and then disabled again
|
||||
// in which case there would be an existingSubscription.
|
||||
// but if it was _not_ enabled previously, we reach here, and only create a new
|
||||
// subscription if it is now enabled.
|
||||
|
||||
if (await this.pushEnabled()) {
|
||||
return pushManager.subscribe({
|
||||
userVisibleOnly: true,
|
||||
applicationServerKey: urlB64ToUint8Array(config.web_push_public_key),
|
||||
})
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
|
||||
async pushManager() {
|
||||
|
|
|
@ -114,7 +114,14 @@ class SubscriptionManager {
|
|||
async refreshWebPushSubscriptions(presetTopics) {
|
||||
const topics = presetTopics ?? (await this.webPushTopics());
|
||||
|
||||
await api.updateWebPushSubscriptions(topics, await notifier.getBrowserSubscription());
|
||||
const browserSubscription = await notifier.getBrowserSubscription();
|
||||
|
||||
if (!browserSubscription) {
|
||||
console.log("[SubscriptionManager] No browser subscription currently exists, so web push was never enabled. Skipping.");
|
||||
return;
|
||||
}
|
||||
|
||||
await api.updateWebPushSubscriptions(topics, browserSubscription);
|
||||
}
|
||||
|
||||
async updateState(subscriptionId, state) {
|
||||
|
|
Loading…
Reference in New Issue