export enum LocalStorageKeys { AssetViewMode = 'nlo.cms.assetViewMode', SidebarOpened = 'nlo.cms.sidebarOpened', Language = 'nlo.cms.language' } class LocalStorage { public get(key: LocalStorageKeys): T | null { try { const item = localStorage.getItem(key); if (item && this.isJson(item)) { return JSON.parse(item) as T; } return item as T | null; } catch { // Fail local storage error silently return null; } } public set(key: LocalStorageKeys, value: string) { try { localStorage.setItem(key, value); } catch { // Fail local storage error silently } } private isJson(str: string) { try { JSON.parse(str); } catch (e) { return false; } return true; } } export default new LocalStorage();