aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/assets/player/shared/settings/resolution-menu-button.ts
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/assets/player/shared/settings/resolution-menu-button.ts')
-rw-r--r--client/src/assets/player/shared/settings/resolution-menu-button.ts19
1 files changed, 19 insertions, 0 deletions
diff --git a/client/src/assets/player/shared/settings/resolution-menu-button.ts b/client/src/assets/player/shared/settings/resolution-menu-button.ts
index a0b349f67..672411c11 100644
--- a/client/src/assets/player/shared/settings/resolution-menu-button.ts
+++ b/client/src/assets/player/shared/settings/resolution-menu-button.ts
@@ -12,6 +12,7 @@ class ResolutionMenuButton extends MenuButton {
12 this.controlText('Quality') 12 this.controlText('Quality')
13 13
14 player.peertubeResolutions().on('resolutionsAdded', () => this.buildQualities()) 14 player.peertubeResolutions().on('resolutionsAdded', () => this.buildQualities())
15 player.peertubeResolutions().on('resolutionRemoved', () => this.cleanupQualities())
15 16
16 // For parent 17 // For parent
17 player.peertubeResolutions().on('resolutionChanged', () => { 18 player.peertubeResolutions().on('resolutionChanged', () => {
@@ -82,6 +83,24 @@ class ResolutionMenuButton extends MenuButton {
82 83
83 this.trigger('menuChanged') 84 this.trigger('menuChanged')
84 } 85 }
86
87 private cleanupQualities () {
88 const resolutions = this.player().peertubeResolutions().getResolutions()
89
90 this.menu.children().forEach((children: ResolutionMenuItem) => {
91 if (children.resolutionId === undefined) {
92 return
93 }
94
95 if (resolutions.find(r => r.id === children.resolutionId)) {
96 return
97 }
98
99 this.menu.removeChild(children)
100 })
101
102 this.trigger('menuChanged')
103 }
85} 104}
86 105
87videojs.registerComponent('ResolutionMenuButton', ResolutionMenuButton) 106videojs.registerComponent('ResolutionMenuButton', ResolutionMenuButton)