]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/assets/player/videojs-components/settings-menu-item.ts
Fix For GitPod
[github/Chocobozzz/PeerTube.git] / client / src / assets / player / videojs-components / settings-menu-item.ts
index f14959f9cf4e0b958933cd0ff9e7fd3d63364796..85172a18c086664598a8c6eeefd76570f2f58ed7 100644 (file)
@@ -12,6 +12,22 @@ const MenuItem: VideoJSComponentInterface = videojsUntyped.getComponent('MenuIte
 const component: VideoJSComponentInterface = videojsUntyped.getComponent('Component')
 
 class SettingsMenuItem extends MenuItem {
+  settingsButton: any
+  dialog: any
+  mainMenu: any
+  panel: any
+  panelChild: any
+  panelChildEl: any
+  size: any
+  menuToLoad: string
+  subMenu: any
+
+  submenuClickHandler: Function
+  transitionEndHandler: Function
+
+  settingsSubMenuTitleEl_: any
+  settingsSubMenuValueEl_: any
+  settingsSubMenuEl_: any
 
   constructor (player: videojs.Player, options: any, entry: string, menuButton: VideoJSComponentInterface) {
     super(player, options)
@@ -43,6 +59,9 @@ class SettingsMenuItem extends MenuItem {
     player.ready(() => {
       // Voodoo magic for IOS
       setTimeout(() => {
+        // Player was destroyed
+        if (!this.player_) return
+
         this.build()
 
         // Update on rate change
@@ -56,7 +75,6 @@ class SettingsMenuItem extends MenuItem {
               this.settingsSubMenuEl_.appendChild(this.subMenu.menu.el_)
               this.update()
               this.bindClickEvents()
-
             }, 0)
           })
         }
@@ -88,6 +106,10 @@ class SettingsMenuItem extends MenuItem {
     // To update the sub menu value on click, setTimeout is needed because
     // updating the value is not instant
     setTimeout(() => this.update(event), 0)
+
+    // Seems like videojs adds a vjs-hidden class on the caption menu after a click
+    // We don't need it
+    this.subMenu.menu.removeClass('vjs-hidden')
   }
 
   /**
@@ -167,7 +189,7 @@ class SettingsMenuItem extends MenuItem {
    * @method PrefixedEvent
    */
   PrefixedEvent (element: any, type: any, callback: any, action = 'addEvent') {
-    let prefix = ['webkit', 'moz', 'MS', 'o', '']
+    const prefix = ['webkit', 'moz', 'MS', 'o', '']
 
     for (let p = 0; p < prefix.length; p++) {
       if (!prefix[p]) {
@@ -249,7 +271,7 @@ class SettingsMenuItem extends MenuItem {
 
   update (event?: any) {
     let target: HTMLElement = null
-    let subMenu = this.subMenu.name()
+    const subMenu = this.subMenu.name()
 
     if (event && event.type === 'tap') {
       target = event.target
@@ -264,7 +286,7 @@ class SettingsMenuItem extends MenuItem {
       setTimeout(() => this.settingsSubMenuValueEl_.innerHTML = this.subMenu.labelEl_.innerHTML, 250)
     } else {
       // Loop trough the submenu items to find the selected child
-      for (let subMenuItem of this.subMenu.menu.children_) {
+      for (const subMenuItem of this.subMenu.menu.children_) {
         if (!(subMenuItem instanceof component)) {
           continue
         }
@@ -287,7 +309,7 @@ class SettingsMenuItem extends MenuItem {
   }
 
   bindClickEvents () {
-    for (let item of this.subMenu.menu.children()) {
+    for (const item of this.subMenu.menu.children()) {
       if (!(item instanceof component)) {
         continue
       }
@@ -307,7 +329,7 @@ class SettingsMenuItem extends MenuItem {
   }
 
   setMargin () {
-    let [width] = this.size
+    const [ width ] = this.size
 
     this.settingsSubMenuEl_.style.marginRight = `-${width}px`
   }