vjs: hide errors when updating i18n (#7004)

## Issue
6989 console errors and warnings are getting out of hand!

## Notes
This method was previously criticized in 5643. But given that no better solution has been submitted after a long while, nor is there a new solution for doing i18n, I'm reviving it again. It'll be no worse from the status quo.

Despite try-catch being overkill, I think the code-clarity outweighs the performance issues (if any, in the first place). Also, we are only suppressing the error in a very specialized function which even if it fails, will simply be a no-op and the GUI falling back to English.
This commit is contained in:
infinite-persistence 2021-09-02 09:38:58 -07:00 committed by GitHub
parent a0f164c945
commit 061e4ddd55
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -296,6 +296,7 @@ export default React.memo<Props>(function VideoJs(props: Props) {
// as the listener to update static texts.
const player = playerRef.current;
if (player) {
try {
const controlBar = player.getChild('controlBar');
switch (e.type) {
case 'play':
@ -335,6 +336,10 @@ export default React.memo<Props>(function VideoJs(props: Props) {
if (isDev) throw Error('Unexpected: ' + e.type);
break;
}
} catch {
// Just fail silently. It'll just be due to hidden ctrls, and if it is
// due to control hierarchy change, we'll notice that in the GUI.
}
}
}