aboutsummaryrefslogblamecommitdiffhomepage
path: root/client/src/assets/player/upnext/upnext-plugin.ts
blob: db969024deb7bbdb324c87d9cf2b0305d37f2fc9 (plain) (tree)
1
2
3
4
5
6
7
8
                              
                                           
 
                                          
 
                                   
 
                                                                               





                                                 


                                                                      

     
                 










                                              
import videojs from 'video.js'
import { EndCardOptions } from './end-card'

const Plugin = videojs.getPlugin('plugin')

class UpNextPlugin extends Plugin {

  constructor (player: videojs.Player, options: Partial<EndCardOptions> = {}) {
    const settings = {
      next: options.next,
      getTitle: options.getTitle,
      timeout: options.timeout || 5000,
      cancelText: options.cancelText || 'Cancel',
      headText: options.headText || 'Up Next',
      suspendedText: options.suspendedText || 'Autoplay is suspended',
      condition: options.condition,
      suspended: options.suspended
    }

    super(player)

    this.player.ready(() => {
      player.addClass('vjs-upnext')
    })

    player.addChild('EndCard', settings)
  }
}

videojs.registerPlugin('upnext', UpNextPlugin)
export { UpNextPlugin }