diff --git a/src/common/component/Notification/useDeviceToken.ts b/src/common/component/Notification/useDeviceToken.ts index 02f19478..15e74d22 100644 --- a/src/common/component/Notification/useDeviceToken.ts +++ b/src/common/component/Notification/useDeviceToken.ts @@ -2,12 +2,15 @@ import { useState } from "react"; import { initializeApp } from "firebase/app"; import { getToken, getMessaging } from "firebase/messaging"; import { firebaseConfig } from "../../../app/config"; +let requesting = false; +let error = false; const useDeviceToken = (vapidKey: string) => { const [token, setToken] = useState(null); // https only if (navigator.serviceWorker) { const messaging = getMessaging(initializeApp(firebaseConfig)); - + if (requesting || error) return; + requesting = true; getToken(messaging, { vapidKey }) @@ -21,8 +24,11 @@ const useDeviceToken = (vapidKey: string) => { // Show permission request UI console.log("No registration token available. Request permission to generate one."); } + requesting = false; }) .catch((err) => { + requesting = false; + error = true; console.log("An error occurred while retrieving token. ", err); }); } diff --git a/src/routes/home/index.tsx b/src/routes/home/index.tsx index 2f72136a..0c111cb6 100644 --- a/src/routes/home/index.tsx +++ b/src/routes/home/index.tsx @@ -41,7 +41,6 @@ export default function HomePage() { if (isSettingPage) { return ( <> - );