mempool/frontend/src/app/components/master-page/master-page.component.ts

81 lines
2.5 KiB
TypeScript
Raw Normal View History

import { Component, OnInit, Input, ViewChild } from '@angular/core';
import { Env, StateService } from '../../services/state.service';
import { Observable, merge, of } from 'rxjs';
2022-09-21 17:23:45 +02:00
import { LanguageService } from '../../services/language.service';
import { EnterpriseService } from '../../services/enterprise.service';
2022-10-12 22:13:29 +00:00
import { NavigationService } from '../../services/navigation.service';
import { MenuComponent } from '../menu/menu.component';
@Component({
selector: 'app-master-page',
templateUrl: './master-page.component.html',
styleUrls: ['./master-page.component.scss'],
})
export class MasterPageComponent implements OnInit {
@Input() headerVisible = true;
@Input() footerVisibleOverride: boolean | null = null;
env: Env;
network$: Observable<string>;
connectionState$: Observable<number>;
navCollapsed = false;
2020-10-09 13:56:43 +07:00
isMobile = window.innerWidth <= 767.98;
officialMempoolSpace = this.stateService.env.OFFICIAL_MEMPOOL_SPACE;
urlLanguage: string;
2022-07-21 19:58:12 +02:00
subdomain = '';
2022-10-12 22:13:29 +00:00
networkPaths: { [network: string]: string };
2023-05-11 11:38:57 -05:00
networkPaths$: Observable<Record<string, string>>;
footerVisible = true;
userAuth: any | undefined;
@ViewChild(MenuComponent)
private menuComponent!: MenuComponent;
constructor(
public stateService: StateService,
private languageService: LanguageService,
2022-07-21 19:58:12 +02:00
private enterpriseService: EnterpriseService,
2022-10-12 22:13:29 +00:00
private navigationService: NavigationService,
) { }
2023-05-11 11:38:57 -05:00
ngOnInit(): void {
this.env = this.stateService.env;
this.connectionState$ = this.stateService.connectionState$;
this.network$ = merge(of(''), this.stateService.networkChanged$);
this.urlLanguage = this.languageService.getLanguageForUrl();
2022-07-21 19:58:12 +02:00
this.subdomain = this.enterpriseService.getSubdomain();
2022-10-12 22:13:29 +00:00
this.navigationService.subnetPaths.subscribe((paths) => {
this.networkPaths = paths;
if (this.footerVisibleOverride === null) {
if (paths.mainnet.indexOf('docs') > -1) {
this.footerVisible = false;
} else {
this.footerVisible = true;
}
2023-05-11 11:38:57 -05:00
} else {
this.footerVisible = this.footerVisibleOverride;
2023-05-11 11:38:57 -05:00
}
2022-10-12 22:13:29 +00:00
});
this.userAuth = JSON.parse(localStorage.getItem('auth') || '') ?? null;
}
collapse(): void {
this.navCollapsed = !this.navCollapsed;
}
2023-05-11 11:38:57 -05:00
onResize(): void {
this.isMobile = window.innerWidth <= 767.98;
}
2023-06-09 19:03:47 -04:00
brandClick(e): void {
this.stateService.resetScroll$.next(true);
}
hamburgerClick(): void {
if (this.menuComponent) {
this.menuComponent.hambugerClick();
}
}
}