[menu] fix json.parse on missing auth in localstorage
This commit is contained in:
parent
c4f2f4ca66
commit
b64b6fb3c7
@ -5,6 +5,7 @@ import { LanguageService } from '../../services/language.service';
|
|||||||
import { EnterpriseService } from '../../services/enterprise.service';
|
import { EnterpriseService } from '../../services/enterprise.service';
|
||||||
import { NavigationService } from '../../services/navigation.service';
|
import { NavigationService } from '../../services/navigation.service';
|
||||||
import { MenuComponent } from '../menu/menu.component';
|
import { MenuComponent } from '../menu/menu.component';
|
||||||
|
import { StorageService } from '../../services/storage.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-master-page',
|
selector: 'app-master-page',
|
||||||
@ -37,6 +38,7 @@ export class MasterPageComponent implements OnInit {
|
|||||||
private languageService: LanguageService,
|
private languageService: LanguageService,
|
||||||
private enterpriseService: EnterpriseService,
|
private enterpriseService: EnterpriseService,
|
||||||
private navigationService: NavigationService,
|
private navigationService: NavigationService,
|
||||||
|
private storageService: StorageService
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
@ -74,12 +76,12 @@ export class MasterPageComponent implements OnInit {
|
|||||||
this.stateService.resetScroll$.next(true);
|
this.stateService.resetScroll$.next(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
onLoggedOut() {
|
onLoggedOut(): void {
|
||||||
this.refreshAuth();
|
this.refreshAuth();
|
||||||
}
|
}
|
||||||
|
|
||||||
refreshAuth(): void {
|
refreshAuth(): void {
|
||||||
this.userAuth = JSON.parse(localStorage.getItem('auth') || '') ?? null;
|
this.userAuth = this.storageService.getAuth();
|
||||||
}
|
}
|
||||||
|
|
||||||
hamburgerClick(): void {
|
hamburgerClick(): void {
|
||||||
|
@ -2,6 +2,7 @@ import { Component, OnInit, Output, EventEmitter } from '@angular/core';
|
|||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { ApiService } from '../../services/api.service';
|
import { ApiService } from '../../services/api.service';
|
||||||
import { MenuGroup } from '../../interfaces/services.interface';
|
import { MenuGroup } from '../../interfaces/services.interface';
|
||||||
|
import { StorageService } from '../../services/storage.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-menu',
|
selector: 'app-menu',
|
||||||
@ -16,11 +17,12 @@ export class MenuComponent implements OnInit {
|
|||||||
@Output() loggedOut = new EventEmitter<boolean>();
|
@Output() loggedOut = new EventEmitter<boolean>();
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private apiService: ApiService
|
private apiService: ApiService,
|
||||||
|
private storageService: StorageService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.userAuth = JSON.parse(localStorage.getItem('auth') || '') ?? null;
|
this.userAuth = this.storageService.getAuth();
|
||||||
this.userMenuGroups$ = this.apiService.getUserMenuGroups$();
|
this.userMenuGroups$ = this.apiService.getUserMenuGroups$();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ import { WebsocketResponse } from '../interfaces/websocket.interface';
|
|||||||
import { Outspend, Transaction } from '../interfaces/electrs.interface';
|
import { Outspend, Transaction } from '../interfaces/electrs.interface';
|
||||||
import { Conversion } from './price.service';
|
import { Conversion } from './price.service';
|
||||||
import { MenuGroup } from '../interfaces/services.interface';
|
import { MenuGroup } from '../interfaces/services.interface';
|
||||||
|
import { StorageService } from './storage.service';
|
||||||
|
|
||||||
// Todo - move to config.json
|
// Todo - move to config.json
|
||||||
const SERVICES_API_PREFIX = `/api/v1/services`;
|
const SERVICES_API_PREFIX = `/api/v1/services`;
|
||||||
@ -22,6 +23,7 @@ export class ApiService {
|
|||||||
constructor(
|
constructor(
|
||||||
private httpClient: HttpClient,
|
private httpClient: HttpClient,
|
||||||
private stateService: StateService,
|
private stateService: StateService,
|
||||||
|
private storageService: StorageService
|
||||||
) {
|
) {
|
||||||
this.apiBaseUrl = ''; // use relative URL by default
|
this.apiBaseUrl = ''; // use relative URL by default
|
||||||
if (!stateService.isBrowser) { // except when inside AU SSR process
|
if (!stateService.isBrowser) { // except when inside AU SSR process
|
||||||
@ -344,7 +346,7 @@ export class ApiService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getUserMenuGroups$(): Observable<MenuGroup[]> {
|
getUserMenuGroups$(): Observable<MenuGroup[]> {
|
||||||
const auth = JSON.parse(localStorage.getItem('auth') || '');
|
const auth = this.storageService.getAuth();
|
||||||
if (!auth) {
|
if (!auth) {
|
||||||
return of(null);
|
return of(null);
|
||||||
}
|
}
|
||||||
@ -354,10 +356,10 @@ export class ApiService {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
logout$() {
|
logout$(): Observable<any> {
|
||||||
const auth = JSON.parse(localStorage.getItem('auth') || '');
|
const auth = this.storageService.getAuth();
|
||||||
if (!auth) {
|
if (!auth) {
|
||||||
return;
|
return of(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
localStorage.setItem('auth', null);
|
localStorage.setItem('auth', null);
|
||||||
|
@ -56,4 +56,12 @@ export class StorageService {
|
|||||||
console.log(e);
|
console.log(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getAuth(): any | null {
|
||||||
|
try {
|
||||||
|
return JSON.parse(localStorage.getItem('auth'));
|
||||||
|
} catch(e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user