From a6f5c1b6cdf24ad27a062eb2ba71beef574faff7 Mon Sep 17 00:00:00 2001 From: sumeyye Date: Mon, 3 Feb 2025 10:54:47 +0300 Subject: [PATCH] update: handling `access_token` event changes on multiple tabs --- .../src/lib/services/local-storage-listener.service.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/local-storage-listener.service.ts b/npm/ng-packs/packages/core/src/lib/services/local-storage-listener.service.ts index 67231f5e85..4920e7fa0e 100644 --- a/npm/ng-packs/packages/core/src/lib/services/local-storage-listener.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/local-storage-listener.service.ts @@ -1,6 +1,5 @@ import { DOCUMENT } from '@angular/common'; import { Injectable, inject } from '@angular/core'; - @Injectable({ providedIn: 'root', }) @@ -9,8 +8,13 @@ export class LocalStorageListenerService { constructor() { this.window.addEventListener('storage', event => { - if (event.key === 'access_token' && event.newValue === null) { - this.window.location.reload(); + if (event.key === 'access_token') { + const tokenRemoved = event.newValue === null; + const tokenAdded = event.oldValue === null && event.newValue !== null; + + if (tokenRemoved || tokenAdded) { + this.window.location.assign('/'); + } } }); }