1 import videojs from 'video.js'
2 import { PeerTubeLinkButtonOptions } from '../peertube-videojs-typings'
3 import { buildVideoLink, decorateVideoLink } from '../utils'
5 const Button = videojs.getComponent('Button')
6 class PeerTubeLinkButton extends Button {
7 private shortUUID: string
9 constructor (player: videojs.Player, options?: PeerTubeLinkButtonOptions) {
10 super(player, options as any)
14 return this.buildElement()
18 this.el().setAttribute('href', this.buildLink())
25 private buildElement () {
26 const el = videojs.dom.createEl('a', {
27 href: this.buildLink(),
28 innerHTML: 'PeerTube',
29 title: this.player().localize('Video page (new window)'),
30 className: 'vjs-peertube-link',
34 el.addEventListener('mouseenter', () => this.updateHref())
36 return el as HTMLButtonElement
39 private buildLink () {
40 const url = buildVideoLink({ shortUUID: this.shortUUID })
42 return decorateVideoLink({ url, startTime: this.player().currentTime() })
46 videojs.registerComponent('PeerTubeLinkButton', PeerTubeLinkButton)