From b2f36c28b4181cf9d903460ba37a443b4733187e Mon Sep 17 00:00:00 2001 From: erdemcaygor Date: Fri, 9 May 2025 19:07:16 +0300 Subject: [PATCH] local storage service refactored according to ssr --- .../src/lib/services/local-storage.service.ts | 33 ++++++++++++++----- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/local-storage.service.ts b/npm/ng-packs/packages/core/src/lib/services/local-storage.service.ts index 15ae8d53a3..e4fadc2fa9 100644 --- a/npm/ng-packs/packages/core/src/lib/services/local-storage.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/local-storage.service.ts @@ -1,28 +1,45 @@ -import { Injectable } from '@angular/core'; +import { Inject, Injectable, PLATFORM_ID } from '@angular/core'; +import { isPlatformBrowser } from '@angular/common'; @Injectable({ providedIn: 'root', }) export class AbpLocalStorageService implements Storage { - constructor() {} + private isBrowser: boolean; + + constructor(@Inject(PLATFORM_ID) private platformId: unknown) { + this.isBrowser = isPlatformBrowser(this.platformId); + } [name: string]: any; get length(): number { - return localStorage.length; + return this.isBrowser ? localStorage.length : 0; } clear(): void { - localStorage.clear(); + if (this.isBrowser) { + localStorage.clear(); + } } - getItem(key: string): string { + getItem(key: string): string | null { + if (!this.isBrowser) { + return null; + } return localStorage.getItem(key); } - key(index: number): string { + key(index: number): string | null { + if (!this.isBrowser) { + return null; + } return localStorage.key(index); } removeItem(key: string): void { - localStorage.removeItem(key); + if (this.isBrowser) { + localStorage.removeItem(key); + } } setItem(key: string, value: string): void { - localStorage.setItem(key, value); + if (this.isBrowser) { + localStorage.setItem(key, value); + } } }