X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fassets%2Fplayer%2Fshared%2Fpeertube%2Fpeertube-plugin.ts;h=a5d712d70dbd9e1340526e047b58b859afe2fe93;hb=38a3ccc7f8ad0ea94362b58c732af7c387ab46be;hp=83c32415e833f4c8bd1b8bd6c5422badb395b6c5;hpb=fd3c2e87051f5029cdec39d877b576a62f48e219;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/assets/player/shared/peertube/peertube-plugin.ts b/client/src/assets/player/shared/peertube/peertube-plugin.ts index 83c32415e..a5d712d70 100644 --- a/client/src/assets/player/shared/peertube/peertube-plugin.ts +++ b/client/src/assets/player/shared/peertube/peertube-plugin.ts @@ -125,6 +125,32 @@ class PeerTubePlugin extends Plugin { } displayFatalError () { + this.player.loadingSpinner.hide() + + const buildModal = (error: MediaError) => { + const localize = this.player.localize.bind(this.player) + + const wrapper = document.createElement('div') + const header = document.createElement('h1') + header.innerText = localize('Failed to play video') + wrapper.appendChild(header) + const desc = document.createElement('div') + desc.innerText = localize('The video failed to play due to technical issues.') + wrapper.appendChild(desc) + const details = document.createElement('p') + details.classList.add('error-details') + details.innerText = error.message + wrapper.appendChild(details) + + return wrapper + } + + const modal = this.player.createModal(buildModal(this.player.error()), { + temporary: false, + uncloseable: true + }) + modal.addClass('vjs-custom-error-display') + this.player.addClass('vjs-error-display-enabled') }