From f2f1118f175edd91203d655db863cb12379d332f Mon Sep 17 00:00:00 2001 From: Florent F Date: Wed, 14 Feb 2018 11:02:51 +0100 Subject: Use fetch instead of XMLHttpRequest (#292) --- client/src/standalone/videos/embed.ts | 70 +++++++++++++++-------------------- 1 file changed, 29 insertions(+), 41 deletions(-) (limited to 'client/src/standalone/videos') diff --git a/client/src/standalone/videos/embed.ts b/client/src/standalone/videos/embed.ts index 9c672529f..d0676968e 100644 --- a/client/src/standalone/videos/embed.ts +++ b/client/src/standalone/videos/embed.ts @@ -6,54 +6,42 @@ import '../../assets/player/peertube-videojs-plugin' 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); + }) -- cgit v1.2.3