diff --git a/src/shared/components/app/navbar.tsx b/src/shared/components/app/navbar.tsx index aa1bef26..6bad5a55 100644 --- a/src/shared/components/app/navbar.tsx +++ b/src/shared/components/app/navbar.tsx @@ -66,7 +66,7 @@ export class Navbar extends Component { if (isBrowser()) { // On the first load, check the unreads this.requestNotificationPermission(); - await this.fetchUnreads(); + this.fetchUnreads(); this.requestNotificationPermission(); document.addEventListener("mouseup", this.handleOutsideMenuClick); @@ -408,7 +408,7 @@ export class Navbar extends Component { return amAdmin() || moderatesS; } - async fetchUnreads() { + fetchUnreads() { poll(async () => { const auth = myAuth(); if (auth) { diff --git a/src/shared/utils.ts b/src/shared/utils.ts index a4a5054c..7b30390f 100644 --- a/src/shared/utils.ts +++ b/src/shared/utils.ts @@ -1499,6 +1499,8 @@ function sleep(millis: number): Promise { /** * Polls / repeatedly runs a promise, every X milliseconds */ -export function poll(promiseFn: any, millis: number) { - promiseFn().then(sleep(millis).then(() => poll(promiseFn, millis))); +export async function poll(promiseFn: any, millis: number) { + await promiseFn(); + await sleep(millis); + return poll(promiseFn, millis); }