From 127b343eabb129284eb195b3483b68630c543bee Mon Sep 17 00:00:00 2001
From: Greg Fodor <gfodor@gmail.com>
Date: Wed, 31 Oct 2018 04:45:27 +0000
Subject: [PATCH] Handle vapid public get init

---
 src/hub.js           | 5 ++++-
 src/subscriptions.js | 4 ++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/hub.js b/src/hub.js
index 384564031..84a0e496f 100644
--- a/src/hub.js
+++ b/src/hub.js
@@ -500,7 +500,10 @@ document.addEventListener("DOMContentLoaded", async () => {
   retPhxChannel
     .join()
     .receive("ok", async data => subscriptions.setVapidPublicKey(data.vapid_public_key))
-    .receive("error", res => console.error(res));
+    .receive("error", res => {
+      subscriptions.setVapidPublicKey(null);
+      console.error(res);
+    });
 
   linkChannel.setSocket(socket);
 });
diff --git a/src/subscriptions.js b/src/subscriptions.js
index bdf5765ef..a5d9fc8af 100644
--- a/src/subscriptions.js
+++ b/src/subscriptions.js
@@ -50,6 +50,10 @@ export default class Subscriptions {
     // registration becomes null if failed, non null if registered
     while (this.registration === undefined) await nextTick();
     if (!this.registration || !this.registration.pushManager) return null;
+
+    while (this.vapidPublicKey === undefined) await nextTick();
+    if (this.vapidPublicKey === null) return null;
+
     try {
       const convertedVapidKey = urlBase64ToUint8Array(this.vapidPublicKey);
 
-- 
GitLab