]>
Commit | Line | Data |
---|---|---|
512decf3 | 1 | import videojs from 'video.js' |
f5fcd9f7 | 2 | import { EndCardOptions } from './end-card' |
3bcb4fd7 | 3 | |
f5fcd9f7 | 4 | const Plugin = videojs.getPlugin('plugin') |
3bcb4fd7 | 5 | |
3bcb4fd7 | 6 | class UpNextPlugin extends Plugin { |
f5fcd9f7 | 7 | |
7e37e111 | 8 | constructor (player: videojs.Player, options: Partial<EndCardOptions> = {}) { |
3bcb4fd7 RK |
9 | const settings = { |
10 | next: options.next, | |
11 | getTitle: options.getTitle, | |
12 | timeout: options.timeout || 5000, | |
13 | cancelText: options.cancelText || 'Cancel', | |
14 | headText: options.headText || 'Up Next', | |
223b24e6 RK |
15 | suspendedText: options.suspendedText || 'Autoplay is suspended', |
16 | condition: options.condition, | |
17 | suspended: options.suspended | |
3bcb4fd7 RK |
18 | } |
19 | ||
f5fcd9f7 | 20 | super(player) |
3bcb4fd7 | 21 | |
f746622b C |
22 | // UpNext plugin can be called later, so ensure the player is not disposed |
23 | if (this.player.isDisposed()) return | |
24 | ||
3bcb4fd7 RK |
25 | this.player.ready(() => { |
26 | player.addClass('vjs-upnext') | |
27 | }) | |
28 | ||
29 | player.addChild('EndCard', settings) | |
30 | } | |
31 | } | |
32 | ||
33 | videojs.registerPlugin('upnext', UpNextPlugin) | |
34 | export { UpNextPlugin } |