]>
Commit | Line | Data |
---|---|---|
512decf3 | 1 | import videojs from 'video.js' |
77728efa | 2 | |
f5fcd9f7 | 3 | const Component = videojs.getComponent('Component') |
77728efa C |
4 | |
5 | class PeerTubeLoadProgressBar extends Component { | |
6 | ||
7e37e111 | 7 | constructor (player: videojs.Player, options?: videojs.ComponentOptions) { |
77728efa | 8 | super(player, options) |
f5fcd9f7 | 9 | |
77728efa C |
10 | this.on(player, 'progress', this.update) |
11 | } | |
12 | ||
13 | createEl () { | |
14 | return super.createEl('div', { | |
15 | className: 'vjs-load-progress', | |
16 | innerHTML: `<span class="vjs-control-text"><span>${this.localize('Loaded')}</span>: 0%</span>` | |
17 | }) | |
18 | } | |
19 | ||
20 | dispose () { | |
77728efa C |
21 | super.dispose() |
22 | } | |
23 | ||
24 | update () { | |
2adfc7ea | 25 | const torrent = this.player().webtorrent().getTorrent() |
77728efa C |
26 | if (!torrent) return |
27 | ||
f5fcd9f7 C |
28 | // FIXME: typings |
29 | (this.el() as HTMLElement).style.width = (torrent.progress * 100) + '%' | |
77728efa C |
30 | } |
31 | ||
32 | } | |
33 | ||
34 | Component.registerComponent('PeerTubeLoadProgressBar', PeerTubeLoadProgressBar) |