diff --git a/client/src/assets/player/peertube-link-button.ts b/client/src/assets/player/peertube-link-button.ts index 6ead78c00..a47adc2db 100644 --- a/client/src/assets/player/peertube-link-button.ts +++ b/client/src/assets/player/peertube-link-button.ts @@ -4,17 +4,37 @@ const Button: VideoJSComponentInterface = videojsUntyped.getComponent('Button') class PeerTubeLinkButton extends Button { createEl () { - return videojsUntyped.dom.createEl('a', { - href: window.location.href.replace('embed', 'watch'), - innerHTML: 'PeerTube', - title: 'Go to the video page', - className: 'vjs-peertube-link', - target: '_blank' - }) + return this.buildElement() + } + + updateHref () { + const currentTime = Math.floor(this.player().currentTime()) + this.el().setAttribute('href', this.buildHref(currentTime)) } handleClick () { this.player_.pause() } + + private buildElement () { + const el = videojsUntyped.dom.createEl('a', { + href: this.buildHref(), + innerHTML: 'PeerTube', + title: 'Go to the video page', + className: 'vjs-peertube-link', + target: '_blank' + }) + + el.addEventListener('mouseenter', () => this.updateHref()) + + return el + } + + private buildHref (time?: number) { + let href = window.location.href.replace('embed', 'watch') + if (time) href += '?start=' + time + + return href + } } Button.registerComponent('PeerTubeLinkButton', PeerTubeLinkButton)