From 03012270fb49ef22d686d928bf16836eaccf6bb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20G=C3=BCdelh=C3=B6fer?= Date: Thu, 10 Apr 2025 14:45:53 +0300 Subject: [PATCH 1/2] Patch Hydra source initScreen to only call the screen dialog once --- packages/web/src/lib/hydra-wrapper.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/packages/web/src/lib/hydra-wrapper.ts b/packages/web/src/lib/hydra-wrapper.ts index 3fe23da..1401bb8 100644 --- a/packages/web/src/lib/hydra-wrapper.ts +++ b/packages/web/src/lib/hydra-wrapper.ts @@ -187,6 +187,26 @@ export class HydraWrapper { ); } + /** + * Patching HydraSources + */ + const HydraSource = this._hydra.s?.[0].constructor; + + // Patching initScreen + // to only init screen once + let screenOptions = "non-init"; + const originScreen = HydraSource.prototype.initScreen; + let screenIsInit = false; + HydraSource.prototype.initScreen = function (options: any) { + if (screenOptions !== options) { + originScreen.bind(this)(options); + } else if (!screenIsInit) { + originScreen.bind(this)(options); + } + screenIsInit = true; + screenOptions = options; + }; + this.initialized = true; console.log("Hydra initialized"); } From b383b64e86edca6a69ad955da9032e73a6d8a530 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20G=C3=BCdelh=C3=B6fer?= Date: Thu, 10 Apr 2025 14:50:31 +0300 Subject: [PATCH 2/2] Remove options, that arent relevant actually --- packages/web/src/lib/hydra-wrapper.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/web/src/lib/hydra-wrapper.ts b/packages/web/src/lib/hydra-wrapper.ts index 1401bb8..e9eaa3a 100644 --- a/packages/web/src/lib/hydra-wrapper.ts +++ b/packages/web/src/lib/hydra-wrapper.ts @@ -194,17 +194,13 @@ export class HydraWrapper { // Patching initScreen // to only init screen once - let screenOptions = "non-init"; const originScreen = HydraSource.prototype.initScreen; let screenIsInit = false; - HydraSource.prototype.initScreen = function (options: any) { - if (screenOptions !== options) { - originScreen.bind(this)(options); - } else if (!screenIsInit) { - originScreen.bind(this)(options); + HydraSource.prototype.initScreen = function () { + if (!screenIsInit) { + originScreen.bind(this)(); } screenIsInit = true; - screenOptions = options; }; this.initialized = true;