]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/core/routing/menu-guard.service.ts
refactor 404 page
[github/Chocobozzz/PeerTube.git] / client / src / app / core / routing / menu-guard.service.ts
index 501e009c0925f25a08d8bc95c8b76466418d5d45..c4e64d434afc525b3742046a0aaa359ebb74c8cc 100644 (file)
@@ -26,23 +26,49 @@ export class OpenMenuGuard extends MenuGuard {
   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) }
 }
 
+@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
   }
 }