X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fcore%2Frouting%2Fmenu-guard.service.ts;h=58ad31cf4f8a5a45d15ae593247c97739bcd16d2;hb=b1dbb9fefc870a90b25f5c0153589f45c9e75e3e;hp=9df2856351133da0ab9a87ef09bbdb090a5dcb1e;hpb=67ed6552b831df66713bac9e672738796128d33f;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/core/routing/menu-guard.service.ts b/client/src/app/core/routing/menu-guard.service.ts index 9df285635..58ad31cf4 100644 --- a/client/src/app/core/routing/menu-guard.service.ts +++ b/client/src/app/core/routing/menu-guard.service.ts @@ -4,45 +4,80 @@ import { MenuService } from '../menu' import { ScreenService } from '../wrappers' abstract class MenuGuard implements CanActivate, CanDeactivate { - display = true canDeactivate = this.canActivate - constructor (protected menu: MenuService, protected screen: ScreenService, display: boolean) { - this.display = display + constructor (protected menu: MenuService, protected screen: ScreenService, protected display: boolean) { + } canActivate (): boolean { // small screens already have the site-wide onResize from screenService // > medium screens have enough space to fit the administrative menus if (!this.screen.isInMobileView() && this.screen.isInMediumView()) { - this.menu.isMenuDisplayed = this.display + this.menu.setMenuDisplay(this.display) } + return true } } @Injectable() export class OpenMenuGuard extends MenuGuard { - constructor (menu: MenuService, screen: ScreenService) { super(menu, screen, true) } + constructor (menu: MenuService, screen: ScreenService) { + super(menu, screen, true) + } +} + +@Injectable() +export class OpenMenuAlwaysGuard extends MenuGuard { + constructor (menu: MenuService, screen: ScreenService) { + super(menu, screen, true) + } + + canActivate (): boolean { + this.menu.setMenuDisplay(this.display) + + return true + } } @Injectable() export class CloseMenuGuard extends MenuGuard { - constructor (menu: MenuService, screen: ScreenService) { super(menu, screen, false) } + constructor (menu: MenuService, screen: ScreenService) { + super(menu, screen, false) + } +} + +@Injectable() +export class CloseMenuAlwaysGuard extends MenuGuard { + constructor (menu: MenuService, screen: ScreenService) { + super(menu, screen, false) + } + + canActivate (): boolean { + this.menu.setMenuDisplay(this.display) + return true + } } @Injectable() export class MenuGuards { public static guards = [ OpenMenuGuard, - CloseMenuGuard + OpenMenuAlwaysGuard, + CloseMenuGuard, + CloseMenuAlwaysGuard ] - static open () { - return OpenMenuGuard + static open (always?: boolean) { + return always + ? OpenMenuAlwaysGuard + : OpenMenuGuard } - static close () { - return CloseMenuGuard + static close (always?: boolean) { + return always + ? CloseMenuAlwaysGuard + : CloseMenuGuard } }