diff options
Diffstat (limited to 'client/src/assets/player/shared/peertube/peertube-plugin.ts')
-rw-r--r-- | client/src/assets/player/shared/peertube/peertube-plugin.ts | 26 |
1 files changed, 26 insertions, 0 deletions
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 { | |||
125 | } | 125 | } |
126 | 126 | ||
127 | displayFatalError () { | 127 | displayFatalError () { |
128 | this.player.loadingSpinner.hide() | ||
129 | |||
130 | const buildModal = (error: MediaError) => { | ||
131 | const localize = this.player.localize.bind(this.player) | ||
132 | |||
133 | const wrapper = document.createElement('div') | ||
134 | const header = document.createElement('h1') | ||
135 | header.innerText = localize('Failed to play video') | ||
136 | wrapper.appendChild(header) | ||
137 | const desc = document.createElement('div') | ||
138 | desc.innerText = localize('The video failed to play due to technical issues.') | ||
139 | wrapper.appendChild(desc) | ||
140 | const details = document.createElement('p') | ||
141 | details.classList.add('error-details') | ||
142 | details.innerText = error.message | ||
143 | wrapper.appendChild(details) | ||
144 | |||
145 | return wrapper | ||
146 | } | ||
147 | |||
148 | const modal = this.player.createModal(buildModal(this.player.error()), { | ||
149 | temporary: false, | ||
150 | uncloseable: true | ||
151 | }) | ||
152 | modal.addClass('vjs-custom-error-display') | ||
153 | |||
128 | this.player.addClass('vjs-error-display-enabled') | 154 | this.player.addClass('vjs-error-display-enabled') |
129 | } | 155 | } |
130 | 156 | ||