diff options
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.ts | 19 |
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 | ||
87 | videojs.registerComponent('ResolutionMenuButton', ResolutionMenuButton) | 106 | videojs.registerComponent('ResolutionMenuButton', ResolutionMenuButton) |