<a *ngIf="menuEntry.routerLink" [routerLink]="menuEntry.routerLink" routerLinkActive="active" class="title-page">{{ menuEntry.label }}</a>
- <div *ngIf="!menuEntry.routerLink" ngbDropdown container="body" class="parent-entry" #dropdown="ngbDropdown" (mouseleave)="closeDropdownIfHovered(dropdown)">
+ <div *ngIf="!menuEntry.routerLink" ngbDropdown [container]="container" class="parent-entry" #dropdown="ngbDropdown" (mouseleave)="closeDropdownIfHovered(dropdown)">
<span
(mouseenter)="openDropdownOnHover(dropdown)" [ngClass]="{ active: !!suffixLabels[menuEntry.label] }" ngbDropdownAnchor
(click)="dropdownAnchorClicked(dropdown)" role="button" class="title-page"
import { Subscription } from 'rxjs'
import { NgbDropdown } from '@ng-bootstrap/ng-bootstrap'
import { GlobalIconName } from '@app/shared/images/global-icon.component'
+import { ScreenService } from '@app/shared/misc/screen.service'
export type TopMenuDropdownParam = {
label: string
suffixLabels: { [ parentLabel: string ]: string }
hasIcons = false
+ container: undefined | 'body' = undefined
private openedOnHover = false
private routeSub: Subscription
- constructor (private router: Router) {}
+ constructor (
+ private router: Router,
+ private screen: ScreenService
+ ) {}
ngOnInit () {
this.updateChildLabels(window.location.pathname)
this.hasIcons = this.menuEntries.some(
e => e.children && e.children.some(c => !!c.iconName)
)
+
+ // FIXME: We have to set body for the container to avoid because of scroll overflow on mobile view
+ // But this break our hovering system
+ if (this.screen.isInMobileView()) {
+ this.container = 'body'
+ }
}
ngOnDestroy () {