From bee7a8dcb48096afaddcb2920f9f438ade7d9d18 Mon Sep 17 00:00:00 2001 From: Carlos Valente <34649812+cpvalente@users.noreply.github.com> Date: Fri, 21 Jul 2023 23:12:15 +0200 Subject: [PATCH] fix: prevent typerror on fullscreen request (#461) --- apps/client/index.html | 1 - apps/client/src/common/hooks/useFullscreen.ts | 24 ++++++++++++------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/apps/client/index.html b/apps/client/index.html index 88135e8ca..c6a234f36 100644 --- a/apps/client/index.html +++ b/apps/client/index.html @@ -6,7 +6,6 @@ - { if (!document.fullscreenElement && !(document as WebkitDocument).webkitIsFullScreen) { // Fullscreen mode is not active, so we can enter fullscreen mode - if (document.documentElement.requestFullscreen) { + const element = document.documentElement; + if (element.requestFullscreen) { // Standard fullscreen API is supported - document.documentElement.requestFullscreen(); - // @ts-expect-error -- the whole casting dance is not worth it - } else if (document.documentElement.webkitRequestFullscreen) { + element.requestFullscreen().catch(() => { + /* nothing to do */ + }); + } else if (element.webkitRequestFullscreen) { // iOS Safari fullscreen API is supported - // @ts-expect-error -- we know this is not undefined now - (document.documentElement as WebkitDocument).webkitRequestFullscreen(); + element.webkitRequestFullscreen().catch(() => { + /* nothing to do */ + }); } } else { // Fullscreen mode is active, so we can exit fullscreen mode if (document.exitFullscreen) { // Standard fullscreen API is supported - document.exitFullscreen(); + document.exitFullscreen().catch((error) => { + console.error('Error while trying to exit fullscreen:', error); + }); } else if ((document as WebkitDocument).webkitExitFullscreen) { // iOS Safari fullscreen API is supported - // @ts-expect-error -- we know this is not undefined now - (document as WebkitDocument).webkitExitFullscreen(); + (document as WebkitDocument).webkitExitFullscreen().catch(() => { + /* nothing to do */ + }); } } }, []);