]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/standalone/videos/embed.ts
Fix embed lint
[github/Chocobozzz/PeerTube.git] / client / src / standalone / videos / embed.ts
index f2f339bcca0899f7de1efd53b7d0c917f6ff752e..3193ae6ef560df29a8e4674d41fd194039a45ca4 100644 (file)
@@ -1,56 +1,45 @@
 import './embed.scss'
 
-import videojs from 'video.js'
+import * as videojs from 'video.js'
+import 'videojs-hotkeys'
 import '../../assets/player/peertube-videojs-plugin'
 import 'videojs-dock/dist/videojs-dock.es.js'
-import { Video } from '../../../../shared'
+import { VideoDetails } from '../../../../shared'
 
-function loadVideoInfo (videoId: string, callback: (err: Error, res?: Video) => 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): Promise<VideoDetails> {
+  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,
-        autoplay: false,
-        peerTubeLink: true
+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))