Skip to content

Commit da1551f

Browse files
authored
fix: improve error message display (#1042)
* fix: improved error messages display * chore: not every error needs a refresh
1 parent 5e29b79 commit da1551f

2 files changed

Lines changed: 56 additions & 15 deletions

File tree

src/assets/styles/main.scss

Lines changed: 49 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -198,29 +198,64 @@ $icon-font-path: '../icon-font' !default;
198198
visibility: visible;
199199
}
200200

201-
&.vjs-error .vjs-error-display {
202-
background: #90a0b3;
203-
204-
&:before {
205-
display: none;
201+
&.vjs-error {
202+
.vjs-poster {
203+
filter: blur(3px) saturate(85%) brightness(85%);
206204
}
207205

208206
.vjs-modal-dialog-content {
209-
font-size: 20px;
210-
font-weight: 500;
211-
text-align: left;
212-
padding: 0 10%;
207+
padding: 2em;
213208
display: flex;
209+
justify-content: center;
214210
align-items: center;
211+
text-align: center;
212+
}
213+
214+
.cld-error-display-content {
215+
max-width: 90%;
216+
padding: 2em 2.5em;
217+
display: flex;
218+
flex-direction: column;
219+
align-items: center;
220+
gap: 1em;
221+
background: color-mix(in srgb, var(--color-base) 50%, transparent);
222+
border-radius: 0.4em;
223+
}
224+
225+
.cld-error-header {
226+
display: flex;
227+
align-items: center;
228+
gap: 0.85em;
229+
font-size: 1.1em;
230+
font-weight: 600;
231+
line-height: 1.2;
215232

216233
&:before {
217234
content: '';
218-
width: 34px;
219-
height: 34px;
220-
margin-right: 10px;
221-
background: url('../icons/info-circle.svg');
222-
transform: translateY(-1px);
235+
width: 1.45em;
236+
height: 1.45em;
223237
flex-shrink: 0;
238+
background: currentColor;
239+
mask: url('../icons/info-circle.svg') center / contain no-repeat;
240+
-webkit-mask: url('../icons/info-circle.svg') center / contain no-repeat;
241+
}
242+
}
243+
244+
.cld-error-message {
245+
font-size: 0.7em;
246+
}
247+
248+
.cld-error-refresh {
249+
color: var(--color-accent);
250+
background: transparent;
251+
font: inherit;
252+
font-size: 0.7em;
253+
text-decoration: none;
254+
cursor: pointer;
255+
256+
&:hover,
257+
&:focus {
258+
text-decoration: underline;
224259
}
225260
}
226261
}

src/components/error-display/error-display.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,18 @@ class CldErrorDisplay extends ErrorDisplay {
99
if (!error) return '';
1010

1111
const wrapper = videojs.dom.createEl('div', { className: 'cld-error-display-content' });
12-
const msg = videojs.dom.createEl('span', { className: 'cld-error-message' });
12+
const header = videojs.dom.createEl('div', { className: 'cld-error-header' });
13+
const title = videojs.dom.createEl('span', { className: 'cld-error-title' }, {}, this.localize('Something went wrong'));
14+
const msg = videojs.dom.createEl('div', { className: 'cld-error-message' });
15+
16+
header.appendChild(title);
17+
1318
if (error.isHtml) {
1419
msg.innerHTML = this.localize(error.message);
1520
} else {
1621
msg.textContent = this.localize(error.message);
1722
}
23+
wrapper.appendChild(header);
1824
wrapper.appendChild(msg);
1925

2026
const refreshLink = msg.querySelector('.cld-error-refresh');

0 commit comments

Comments
 (0)