From c4f2f4ca66c201fef66dcbba78d12211462afda5 Mon Sep 17 00:00:00 2001 From: nymkappa <1612910616@pm.me> Date: Fri, 18 Aug 2023 18:33:09 +0200 Subject: [PATCH] [menu] handle logout without reload, show signin in sidebar when not logged in --- .../master-page/master-page.component.html | 2 +- .../master-page/master-page.component.ts | 10 +++++- .../app/components/menu/menu.component.html | 33 +++++++++++-------- .../src/app/components/menu/menu.component.ts | 4 ++- frontend/src/app/shared/shared.module.ts | 3 +- 5 files changed, 35 insertions(+), 17 deletions(-) diff --git a/frontend/src/app/components/master-page/master-page.component.html b/frontend/src/app/components/master-page/master-page.component.html index 62d0adc4f..4b48c2075 100644 --- a/frontend/src/app/components/master-page/master-page.component.html +++ b/frontend/src/app/components/master-page/master-page.component.html @@ -1,4 +1,4 @@ - +
diff --git a/frontend/src/app/components/master-page/master-page.component.ts b/frontend/src/app/components/master-page/master-page.component.ts index ef8bf23fb..8e229b944 100644 --- a/frontend/src/app/components/master-page/master-page.component.ts +++ b/frontend/src/app/components/master-page/master-page.component.ts @@ -59,7 +59,7 @@ export class MasterPageComponent implements OnInit { }); this.servicesEnabled = this.officialMempoolSpace && this.stateService.env.ACCELERATOR === true && this.stateService.network === ''; - this.userAuth = JSON.parse(localStorage.getItem('auth') || '') ?? null; + this.refreshAuth(); } collapse(): void { @@ -74,6 +74,14 @@ export class MasterPageComponent implements OnInit { this.stateService.resetScroll$.next(true); } + onLoggedOut() { + this.refreshAuth(); + } + + refreshAuth(): void { + this.userAuth = JSON.parse(localStorage.getItem('auth') || '') ?? null; + } + hamburgerClick(): void { if (this.menuComponent) { this.menuComponent.hambugerClick(); diff --git a/frontend/src/app/components/menu/menu.component.html b/frontend/src/app/components/menu/menu.component.html index 850eedbab..c5f8040fd 100644 --- a/frontend/src/app/components/menu/menu.component.html +++ b/frontend/src/app/components/menu/menu.component.html @@ -1,18 +1,25 @@ -
+
\ No newline at end of file diff --git a/frontend/src/app/components/menu/menu.component.ts b/frontend/src/app/components/menu/menu.component.ts index ac80b4a29..ef336064b 100644 --- a/frontend/src/app/components/menu/menu.component.ts +++ b/frontend/src/app/components/menu/menu.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, Input } from '@angular/core'; +import { Component, OnInit, Output, EventEmitter } from '@angular/core'; import { Observable } from 'rxjs'; import { ApiService } from '../../services/api.service'; import { MenuGroup } from '../../interfaces/services.interface'; @@ -13,6 +13,7 @@ export class MenuComponent implements OnInit { navOpen: boolean = false; userMenuGroups$: Observable | undefined; userAuth: any | undefined; + @Output() loggedOut = new EventEmitter(); constructor( private apiService: ApiService @@ -25,6 +26,7 @@ export class MenuComponent implements OnInit { logout(): void { this.apiService.logout$().subscribe(); + this.loggedOut.emit(true); } hambugerClick() { diff --git a/frontend/src/app/shared/shared.module.ts b/frontend/src/app/shared/shared.module.ts index 4f42be927..891f8f987 100644 --- a/frontend/src/app/shared/shared.module.ts +++ b/frontend/src/app/shared/shared.module.ts @@ -4,7 +4,7 @@ import { NgbCollapseModule, NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstra import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome'; import { faFilter, faAngleDown, faAngleUp, faAngleRight, faAngleLeft, faBolt, faChartArea, faCogs, faCubes, faHammer, faDatabase, faExchangeAlt, faInfoCircle, faLink, faList, faSearch, faCaretUp, faCaretDown, faTachometerAlt, faThList, faTint, faTv, faClock, faAngleDoubleDown, faSortUp, faAngleDoubleUp, faChevronDown, - faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft, faFastForward, faWallet, faUserClock, faWrench, faUserFriends, faQuestionCircle, faHistory, faSignOutAlt, faKey, faSuitcase, faIdCardAlt, faNetworkWired, faUserCheck, faCircleCheck } from '@fortawesome/free-solid-svg-icons'; + faFileAlt, faRedoAlt, faArrowAltCircleRight, faExternalLinkAlt, faBook, faListUl, faDownload, faQrcode, faArrowRightArrowLeft, faArrowsRotate, faCircleLeft, faFastForward, faWallet, faUserClock, faWrench, faUserFriends, faQuestionCircle, faHistory, faSignOutAlt, faKey, faSuitcase, faIdCardAlt, faNetworkWired, faUserCheck, faCircleCheck, faUserCircle } from '@fortawesome/free-solid-svg-icons'; import { InfiniteScrollModule } from 'ngx-infinite-scroll'; import { MasterPageComponent } from '../components/master-page/master-page.component'; import { MenuComponent } from '../components/menu/menu.component'; @@ -377,5 +377,6 @@ export class SharedModule { library.addIcons(faNetworkWired); library.addIcons(faUserCheck); library.addIcons(faCircleCheck); + library.addIcons(faUserCircle); } }