Fix watch page video change
[oweals/peertube.git] / client / src / assets / player / resolution-menu-item.ts
1 import { VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'
2
3 const MenuItem: VideoJSComponentInterface = videojsUntyped.getComponent('MenuItem')
4 class ResolutionMenuItem extends MenuItem {
5
6   constructor (player: videojs.Player, options) {
7     const currentResolutionId = player.peertube().getCurrentResolutionId()
8     options.selectable = true
9     options.selected = options.id === currentResolutionId
10
11     super(player, options)
12
13     this.label = options.label
14     this.id = options.id
15
16     player.peertube().on('videoFileUpdate', () => this.updateSelection())
17   }
18
19   handleClick (event) {
20     super.handleClick(event)
21
22     this.player_.peertube().updateResolution(this.id)
23   }
24
25   updateSelection () {
26     this.selected(this.player_.peertube().getCurrentResolutionId() === this.id)
27   }
28 }
29 MenuItem.registerComponent('ResolutionMenuItem', ResolutionMenuItem)
30
31 export { ResolutionMenuItem }