-import { ViewportScroller } from '@angular/common'
import { HotkeysService } from 'angular2-hotkeys'
import * as debug from 'debug'
import { switchMap } from 'rxjs/operators'
+import { ViewportScroller } from '@angular/common'
import { Component, OnInit, ViewChild } from '@angular/core'
import { Router } from '@angular/router'
+import {
+ AuthService,
+ AuthStatus,
+ AuthUser,
+ MenuLink,
+ MenuService,
+ RedirectService,
+ ScreenService,
+ ServerService,
+ UserService
+} from '@app/core'
import { scrollToTop } from '@app/helpers'
-import { AuthService, AuthStatus, AuthUser, MenuService, RedirectService, ScreenService, ServerService, UserService } from '@app/core'
import { LanguageChooserComponent } from '@app/menu/language-chooser.component'
import { QuickSettingsModalComponent } from '@app/modal/quick-settings-modal.component'
+import { PeertubeModalService } from '@app/shared/shared-main/peertube-modal/peertube-modal.service'
+import { NgbDropdown } from '@ng-bootstrap/ng-bootstrap'
import { ServerConfig, UserRight, VideoConstant } from '@shared/models'
-import { NgbDropdown, NgbDropdownConfig } from '@ng-bootstrap/ng-bootstrap'
const logger = debug('peertube:menu:MenuComponent')
currentInterfaceLanguage: string
+ commonMenuLinks: MenuLink[] = []
+
private languages: VideoConstant<string>[] = []
private serverConfig: ServerConfig
private routesPerRight: { [role in UserRight]?: string } = {
private hotkeysService: HotkeysService,
private screenService: ScreenService,
private menuService: MenuService,
- private dropdownConfig: NgbDropdownConfig,
+ private modalService: PeertubeModalService,
private router: Router
- ) {
- this.dropdownConfig.container = 'body'
- }
+ ) { }
get isInMobileView () {
return this.screenService.isInMobileView()
}
get dropdownContainer () {
- if (this.isInMobileView) {
- return null
- } else {
- return this.dropdownConfig.container
- }
+ if (this.isInMobileView) return null
+
+ return 'body' as 'body'
}
get language () {
ngOnInit () {
this.serverConfig = this.serverService.getTmpConfig()
this.serverService.getConfig()
- .subscribe(config => this.serverConfig = config)
+ .subscribe(config => {
+ this.serverConfig = config
+ this.buildMenuLinks()
+ })
this.isLoggedIn = this.authService.isLoggedIn()
if (this.isLoggedIn === true) {
this.authService.userInformationLoaded
.subscribe(() => this.buildUserLanguages())
})
+
+ this.modalService.openQuickSettingsSubject
+ .subscribe(() => this.openQuickSettings())
}
isRegistrationAllowed () {
}
}
+ private buildMenuLinks () {
+ this.commonMenuLinks = this.menuService.buildCommonLinks(this.serverConfig)
+ }
+
private buildUserLanguages () {
if (!this.user) {
this.videoLanguages = []