]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - client/src/assets/player/peertube-link-button.ts
Cache player translations
[github/Chocobozzz/PeerTube.git] / client / src / assets / player / peertube-link-button.ts
... / ...
CommitLineData
1import * as videojs from 'video.js'
2import { VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'
3import { buildVideoLink } from './utils'
4
5const Button: VideoJSComponentInterface = videojsUntyped.getComponent('Button')
6class PeerTubeLinkButton extends Button {
7
8 constructor (player: videojs.Player, options) {
9 super(player, options)
10 }
11
12 createEl () {
13 return this.buildElement()
14 }
15
16 updateHref () {
17 this.el().setAttribute('href', buildVideoLink(this.player().currentTime()))
18 }
19
20 handleClick () {
21 this.player_.pause()
22 }
23
24 private buildElement () {
25 const el = videojsUntyped.dom.createEl('a', {
26 href: buildVideoLink(),
27 innerHTML: 'PeerTube',
28 title: this.player_.localize('Go to the video page'),
29 className: 'vjs-peertube-link',
30 target: '_blank'
31 })
32
33 el.addEventListener('mouseenter', () => this.updateHref())
34
35 return el
36 }
37}
38Button.registerComponent('PeerTubeLinkButton', PeerTubeLinkButton)