import 'videojs-dock/dist/videojs-dock.es.js'
import { VideoDetails } from '../../../../shared'
-function loadVideoInfo (videoId: string, callback: (err: Error, res?: VideoDetails) => void) {
- const xhttp = new XMLHttpRequest()
- xhttp.onreadystatechange = function () {
- if (this.readyState === 4 && this.status === 200) {
- const json = JSON.parse(this.responseText)
- return callback(null, json)
- }
- }
-
- xhttp.onerror = err => callback(err.error)
-
- const url = window.location.origin + '/api/v1/videos/' + videoId
- xhttp.open('GET', url, true)
- xhttp.send()
+async function loadVideoInfo (videoId: string) {
+ const response = await fetch(window.location.origin + '/api/v1/videos/' + videoId)
+ return response.json();
}
const urlParts = window.location.href.split('/')
const videoId = urlParts[urlParts.length - 1]
-loadVideoInfo(videoId, (err, videoInfo) => {
- if (err) {
- console.error(err)
- return
- }
-
- const videoElement = document.getElementById('video-container') as HTMLVideoElement
- const previewUrl = window.location.origin + videoInfo.previewPath
- videoElement.poster = previewUrl
-
- const videojsOptions = {
- controls: true,
- autoplay: false,
- plugins: {
- peertube: {
- videoFiles: videoInfo.files,
- playerElement: videoElement,
- peerTubeLink: true
- },
- hotkeys: {
- enableVolumeScroll: false
+loadVideoInfo(videoId)
+ .then(videoInfo => {
+ const videoElement = document.getElementById('video-container') as HTMLVideoElement
+ const previewUrl = window.location.origin + videoInfo.previewPath
+ videoElement.poster = previewUrl
+
+ const videojsOptions = {
+ controls: true,
+ autoplay: false,
+ plugins: {
+ peertube: {
+ videoFiles: videoInfo.files,
+ playerElement: videoElement,
+ peerTubeLink: true
+ },
+ hotkeys: {
+ enableVolumeScroll: false
+ }
}
}
- }
- videojs('video-container', videojsOptions, function () {
- const player = this
+ videojs('video-container', videojsOptions, function () {
+ const player = this
- player.dock({
- title: videoInfo.name
+ player.dock({
+ title: videoInfo.name
+ })
})
})
-})
+ .catch(err => {
+ console.error(err);
+ })