|
6 | 6 | getErrorDialogTitleLabel, |
7 | 7 | type MediaError, |
8 | 8 | resolveErrorDialogDescription, |
| 9 | + type TranslationKeyOrString, |
9 | 10 | } from '@videojs/core'; |
10 | 11 | import { |
11 | 12 | type AlertDialogApi, |
@@ -40,6 +41,7 @@ export class ErrorDialogElement extends MediaElement { |
40 | 41 | #dialog: AlertDialogApi | null = null; |
41 | 42 | #snapshot: SnapshotController<AlertDialogInput> | null = null; |
42 | 43 | #lastError: MediaError | null = null; |
| 44 | + #lastDescription: TranslationKeyOrString | null = null; |
43 | 45 |
|
44 | 46 | constructor() { |
45 | 47 | super(); |
@@ -92,6 +94,7 @@ export class ErrorDialogElement extends MediaElement { |
92 | 94 |
|
93 | 95 | if (!hasError && !isOpen) { |
94 | 96 | this.#lastError = null; |
| 97 | + this.#lastDescription = null; |
95 | 98 | } |
96 | 99 |
|
97 | 100 | if (hasError && !isOpen) { |
@@ -128,8 +131,12 @@ export class ErrorDialogElement extends MediaElement { |
128 | 131 |
|
129 | 132 | const desc = this.querySelector('media-alert-dialog-description'); |
130 | 133 | if (desc) { |
131 | | - const description = resolveErrorDialogDescription(error); |
132 | | - desc.textContent = resolveTranslationPhrase(t, description); |
| 134 | + const description = error ? resolveErrorDialogDescription(error) : null; |
| 135 | + if (description) { |
| 136 | + this.#lastDescription = description; |
| 137 | + } |
| 138 | + const copy = description ?? this.#lastDescription ?? 'mediaErrorFallback'; |
| 139 | + desc.textContent = resolveTranslationPhrase(t, copy); |
133 | 140 | } |
134 | 141 |
|
135 | 142 | const close = this.querySelector('media-alert-dialog-close'); |
|
0 commit comments