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