From 6ec11e4fde42dd3dc852e9af3d31a93048b3dd93 Mon Sep 17 00:00:00 2001 From: Guy Balaam Date: Wed, 7 Jan 2026 09:09:45 +0000 Subject: [PATCH] Delaying DOM usage until invocation --- packages/javascript/src/AudioPlayer.ts | 2 +- packages/javascript/src/VideoPlayer.ts | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/javascript/src/AudioPlayer.ts b/packages/javascript/src/AudioPlayer.ts index 55b0258..031ee8b 100644 --- a/packages/javascript/src/AudioPlayer.ts +++ b/packages/javascript/src/AudioPlayer.ts @@ -9,7 +9,7 @@ import { Media, MediaClientConfig } from './types/CogsClientMessage'; const DEBUG = false; // Check an iOS-only property (See https://developer.mozilla.org/en-US/docs/Web/API/Navigator#non-standard_properties) -const IS_IOS = typeof (navigator as { standalone?: boolean }).standalone !== 'undefined'; +const IS_IOS = typeof navigator !== 'undefined' && typeof (navigator as { standalone?: boolean }).standalone !== 'undefined'; interface HowlWithHTMLSounds extends Howl { _html5?: unknown; diff --git a/packages/javascript/src/VideoPlayer.ts b/packages/javascript/src/VideoPlayer.ts index 5b09913..f52e354 100644 --- a/packages/javascript/src/VideoPlayer.ts +++ b/packages/javascript/src/VideoPlayer.ts @@ -14,8 +14,6 @@ type EventTypes = { videoClipState: MediaClipStateMessage; }; -const DEFAULT_PARENT_ELEMENT = document.body; - export default class VideoPlayer { private eventTarget = new EventTarget(); private globalVolume = 1; @@ -28,7 +26,7 @@ export default class VideoPlayer { constructor( // eslint-disable-next-line @typescript-eslint/no-explicit-any private cogsConnection: CogsConnection, - parentElement: HTMLElement = DEFAULT_PARENT_ELEMENT, + parentElement: HTMLElement = document.body, ) { this.parentElement = parentElement; @@ -98,7 +96,7 @@ export default class VideoPlayer { } resetParentElement(): void { - this.setParentElement(DEFAULT_PARENT_ELEMENT); + this.setParentElement(document.body); } setGlobalVolume(globalVolume: number): void {