]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/assets/player/peertube-link-button.ts
NoImplicitAny flag true (#1157)
[github/Chocobozzz/PeerTube.git] / client / src / assets / player / peertube-link-button.ts
index 6ead78c006c424f1d0be115bae8a2285d687b46c..b03952b476ba64402d577065e30fdce5dbdd2c6c 100644 (file)
@@ -1,20 +1,37 @@
 import { VideoJSComponentInterface, videojsUntyped } from './peertube-videojs-typings'
+import { buildVideoLink } from './utils'
 
 const Button: VideoJSComponentInterface = videojsUntyped.getComponent('Button')
 class PeerTubeLinkButton extends Button {
 
+  constructor (player: any, options: any) {
+    super(player, options)
+  }
+
   createEl () {
-    return videojsUntyped.dom.createEl('a', {
-      href: window.location.href.replace('embed', 'watch'),
+    return this.buildElement()
+  }
+
+  updateHref () {
+    this.el().setAttribute('href', buildVideoLink(this.player().currentTime()))
+  }
+
+  handleClick () {
+    this.player_.pause()
+  }
+
+  private buildElement () {
+    const el = videojsUntyped.dom.createEl('a', {
+      href: buildVideoLink(),
       innerHTML: 'PeerTube',
-      title: 'Go to the video page',
+      title: this.player_.localize('Go to the video page'),
       className: 'vjs-peertube-link',
       target: '_blank'
     })
-  }
 
-  handleClick () {
-    this.player_.pause()
+    el.addEventListener('mouseenter', () => this.updateHref())
+
+    return el
   }
 }
 Button.registerComponent('PeerTubeLinkButton', PeerTubeLinkButton)