From 6ff6aa77ba3d3bec04d17369c5fd62550397a3ec Mon Sep 17 00:00:00 2001 From: Sungyu Kang Date: Wed, 3 Jul 2024 13:32:27 +0900 Subject: [PATCH] fix: store mocking on not native env (#53) --- packages/web/src/internal/bridgeInstance.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/web/src/internal/bridgeInstance.ts b/packages/web/src/internal/bridgeInstance.ts index 3d5374f..a7d5828 100644 --- a/packages/web/src/internal/bridgeInstance.ts +++ b/packages/web/src/internal/bridgeInstance.ts @@ -1,6 +1,7 @@ import type { Bridge, BridgeStore, + ExcludePrimitive, ExtractStore, KeyOfOrString, Parser, @@ -11,6 +12,7 @@ import { createRandomId, createResolver, DefaultEmitter, + noop, timeout, } from "@webview-bridge/util"; @@ -36,9 +38,14 @@ export class BridgeInstance< private defaultTimeoutMs = 2000; - public store: Omit = {} as Omit; + public store: Omit = { + getState: () => ({}) as ExcludePrimitive>, + subscribe: noop, + } as unknown as Omit; - public isWebViewBridgeAvailable = Boolean(window.ReactNativeWebView); + get isWebViewBridgeAvailable() { + return Boolean(window.ReactNativeWebView) && this._bridgeMethods.length > 0; + } public isNativeMethodAvailable(methodName: string) { return ( @@ -180,8 +187,6 @@ export class BridgeInstance< initialState, nativeInitialState as ExtractStore, ); - this.isWebViewBridgeAvailable = - Boolean(window.ReactNativeWebView) && bridgeMethods.length > 0; document.addEventListener("visibilitychange", () => { if (document.visibilityState === "visible") {